Code:
/ 4.0 / 4.0 / 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. 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
- QueryContinueDragEventArgs.cs
- MultiTrigger.cs
- xsdvalidator.cs
- RegexGroup.cs
- Debugger.cs
- WSSecureConversationDec2005.cs
- FormsAuthenticationEventArgs.cs
- GiveFeedbackEvent.cs
- OdbcConnection.cs
- XmlComplianceUtil.cs
- GeometryHitTestResult.cs
- HwndSourceParameters.cs
- ChtmlCommandAdapter.cs
- ConfigurationLocationCollection.cs
- XmlTypeMapping.cs
- XmlWrappingWriter.cs
- ParentQuery.cs
- XmlIgnoreAttribute.cs
- StructuredProperty.cs
- RotationValidation.cs
- securitycriticaldata.cs
- EdmConstants.cs
- XsdBuilder.cs
- DataSourceUtil.cs
- RuntimeTrackingProfile.cs
- InputBindingCollection.cs
- AuthenticateEventArgs.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- MetricEntry.cs
- ImageMap.cs
- TreeViewAutomationPeer.cs
- MediaPlayerState.cs
- IndicFontClient.cs
- TableRow.cs
- ClientCultureInfo.cs
- XmlSchemaSimpleType.cs
- AppModelKnownContentFactory.cs
- ResourceProviderFactory.cs
- mediaeventshelper.cs
- EmptyStringExpandableObjectConverter.cs
- EnumType.cs
- CLSCompliantAttribute.cs
- contentDescriptor.cs
- DateTime.cs
- ObjectStateFormatter.cs
- Trace.cs
- TextShapeableCharacters.cs
- CheckBoxStandardAdapter.cs
- SystemIPInterfaceProperties.cs
- BinaryFormatter.cs
- SourceFileBuildProvider.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- dataobject.cs
- EventLogTraceListener.cs
- DecimalAverageAggregationOperator.cs
- ServiceModelInstallComponent.cs
- ApplicationDirectoryMembershipCondition.cs
- SettingsProperty.cs
- MappingMetadataHelper.cs
- ChangeBlockUndoRecord.cs
- FileCodeGroup.cs
- SystemResourceKey.cs
- DocumentXPathNavigator.cs
- SchemaMapping.cs
- RestClientProxyHandler.cs
- JsonWriter.cs
- BoolExpressionVisitors.cs
- EpmContentSerializerBase.cs
- NoClickablePointException.cs
- CodeDomConfigurationHandler.cs
- nulltextnavigator.cs
- StaticFileHandler.cs
- XsdDataContractExporter.cs
- XmlNodeChangedEventArgs.cs
- ConnectionsZone.cs
- CompatibleIComparer.cs
- PersistenceContextEnlistment.cs
- ToolStripSeparator.cs
- DataGridViewComboBoxEditingControl.cs
- EditorZoneBase.cs
- SqlTypeConverter.cs
- TransformerInfoCollection.cs
- DoubleAnimationClockResource.cs
- HtmlTableRow.cs
- TimeSpanMinutesConverter.cs
- CustomCategoryAttribute.cs
- DataMemberAttribute.cs
- DownloadProgressEventArgs.cs
- AssertFilter.cs
- CalculatedColumn.cs
- WebPartZoneBase.cs
- SHA512Managed.cs
- ScalarOps.cs
- WorkflowDefinitionDispenser.cs
- wmiprovider.cs
- StreamUpdate.cs
- SqlConnectionFactory.cs
- Int32Storage.cs
- OSFeature.cs
- TextTreeDeleteContentUndoUnit.cs