Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / CodeGeneration / ActivityCodeGenerator.cs / 1305376 / ActivityCodeGenerator.cs
namespace System.Workflow.ComponentModel.Compiler
{
using System;
using System.CodeDom;
using System.Workflow.ComponentModel.Design;
using System.Workflow.ComponentModel.Serialization;
#region Class ActivityCodeGenerator
public class ActivityCodeGenerator
{
public virtual void GenerateCode(CodeGenerationManager manager, object obj)
{
if (manager == null)
throw new ArgumentNullException("manager");
if (obj == null)
throw new ArgumentNullException("obj");
Activity activity = obj as Activity;
if (activity == null)
throw new ArgumentException(SR.GetString(SR.Error_UnexpectedArgumentType, typeof(Activity).FullName), "obj");
manager.Context.Push(activity);
// Generate code for all the member Binds.
Walker walker = new Walker();
walker.FoundProperty += delegate(Walker w, WalkerEventArgs args)
{
//
ActivityBind bindBase = args.CurrentValue as ActivityBind;
if (bindBase != null)
{
// push
if (args.CurrentProperty != null)
manager.Context.Push(args.CurrentProperty);
manager.Context.Push(args.CurrentPropertyOwner);
// call generate code
foreach (ActivityCodeGenerator codeGenerator in manager.GetCodeGenerators(bindBase.GetType()))
codeGenerator.GenerateCode(manager, args.CurrentValue);
// pops
manager.Context.Pop();
if (args.CurrentProperty != null)
manager.Context.Pop();
}
};
walker.WalkProperties(activity, obj);
manager.Context.Pop();
}
protected CodeTypeDeclaration GetCodeTypeDeclaration(CodeGenerationManager manager, string fullClassName)
{
if (manager == null)
throw new ArgumentNullException("manager");
if (fullClassName == null)
throw new ArgumentNullException("fullClassName");
string namespaceName;
string className;
Helpers.GetNamespaceAndClassName(fullClassName, out namespaceName, out className);
CodeNamespaceCollection codeNamespaces = manager.Context[typeof(CodeNamespaceCollection)] as CodeNamespaceCollection;
if (codeNamespaces == null)
throw new InvalidOperationException(SR.GetString(SR.Error_ContextStackItemMissing, typeof(CodeNamespaceCollection).Name));
CodeNamespace codeNS = null;
return Helpers.GetCodeNamespaceAndClass(codeNamespaces, namespaceName, className, out codeNS);
}
}
#endregion
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _Semaphore.cs
- QueryStringConverter.cs
- ConvertersCollection.cs
- Accessible.cs
- PriorityItem.cs
- ControlCollection.cs
- StringResourceManager.cs
- XsltContext.cs
- MarkupProperty.cs
- RemoteDebugger.cs
- XmlChildNodes.cs
- AssociationTypeEmitter.cs
- SourceExpressionException.cs
- SqlVisitor.cs
- CheckBoxAutomationPeer.cs
- VisualState.cs
- TimelineGroup.cs
- RTLAwareMessageBox.cs
- CustomValidator.cs
- Propagator.cs
- SQLGuid.cs
- SystemUnicastIPAddressInformation.cs
- Light.cs
- FileUtil.cs
- GacUtil.cs
- InlineUIContainer.cs
- SortAction.cs
- IgnoreSectionHandler.cs
- XmlLinkedNode.cs
- Int16AnimationUsingKeyFrames.cs
- DataGridRelationshipRow.cs
- OpenTypeLayoutCache.cs
- WinInet.cs
- IsolatedStoragePermission.cs
- SystemException.cs
- ComplusTypeValidator.cs
- DesignerEventService.cs
- DiscoveryDocumentSerializer.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- CancelEventArgs.cs
- FormatterServices.cs
- _ShellExpression.cs
- SqlInfoMessageEvent.cs
- ProvideValueServiceProvider.cs
- LabelLiteral.cs
- GrammarBuilderBase.cs
- Guid.cs
- CheckBoxRenderer.cs
- HttpContext.cs
- XmlHierarchicalDataSourceView.cs
- Deflater.cs
- TypeForwardedToAttribute.cs
- infer.cs
- SafeNativeMethods.cs
- SecurityDescriptor.cs
- SmtpNtlmAuthenticationModule.cs
- BinarySerializer.cs
- Attributes.cs
- DataProtection.cs
- SymbolType.cs
- XsdBuilder.cs
- BulletedListEventArgs.cs
- WebExceptionStatus.cs
- CallId.cs
- ListItemCollection.cs
- LongValidatorAttribute.cs
- UnsafeNativeMethodsTablet.cs
- cache.cs
- DataGridBoolColumn.cs
- DynamicValidatorEventArgs.cs
- ArrayElementGridEntry.cs
- SymLanguageType.cs
- SqlDataSourceConnectionPanel.cs
- HtmlUtf8RawTextWriter.cs
- CounterCreationData.cs
- QuaternionAnimationBase.cs
- SqlMethodCallConverter.cs
- MenuTracker.cs
- GenericAuthenticationEventArgs.cs
- SslStream.cs
- FontDifferentiator.cs
- Logging.cs
- EntityCommand.cs
- EmptyQuery.cs
- ExceptionHandlersDesigner.cs
- PlanCompiler.cs
- SettingsPropertyWrongTypeException.cs
- ListBoxItemAutomationPeer.cs
- NonNullItemCollection.cs
- ExceptionUtil.cs
- DbConnectionOptions.cs
- InteropDesigner.xaml.cs
- CultureSpecificStringDictionary.cs
- EntityDataSourceContextDisposingEventArgs.cs
- PeerName.cs
- TransportChannelFactory.cs
- CalendarDay.cs
- MediaTimeline.cs
- OrCondition.cs
- LocatorPartList.cs