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
- UIElementCollection.cs
- TextMessageEncodingBindingElement.cs
- CollectionExtensions.cs
- AutoGeneratedField.cs
- ViewStateException.cs
- ProtocolsSection.cs
- MembershipUser.cs
- CqlGenerator.cs
- _FixedSizeReader.cs
- SmtpReplyReader.cs
- FloaterParagraph.cs
- KeyGesture.cs
- PrintDialog.cs
- SoapBinding.cs
- InputProcessorProfilesLoader.cs
- StrokeCollectionConverter.cs
- BookmarkList.cs
- DesignerSerializationManager.cs
- FileEnumerator.cs
- RelationshipWrapper.cs
- LinkedDataMemberFieldEditor.cs
- MemberHolder.cs
- DelegatedStream.cs
- DocumentOrderQuery.cs
- ContentTypeSettingClientMessageFormatter.cs
- EntityContainerAssociationSetEnd.cs
- GridPatternIdentifiers.cs
- SQLInt64.cs
- TreeNodeStyle.cs
- CurrentChangedEventManager.cs
- SecureStringHasher.cs
- CachedTypeface.cs
- HttpServerChannel.cs
- NullableFloatSumAggregationOperator.cs
- Substitution.cs
- StylusPointPropertyInfo.cs
- TimelineGroup.cs
- CodeAttachEventStatement.cs
- RsaSecurityTokenParameters.cs
- XPathMultyIterator.cs
- XmlReaderDelegator.cs
- FreezableDefaultValueFactory.cs
- HttpResponseWrapper.cs
- LocationSectionRecord.cs
- OleDbDataAdapter.cs
- HtmlEmptyTagControlBuilder.cs
- TransformerTypeCollection.cs
- DeferredRunTextReference.cs
- Point3DCollection.cs
- NamespaceCollection.cs
- UriWriter.cs
- ResolveMatchesMessageCD1.cs
- MostlySingletonList.cs
- StrongTypingException.cs
- GB18030Encoding.cs
- WebPartTransformerAttribute.cs
- DateTimePicker.cs
- GridProviderWrapper.cs
- PageThemeParser.cs
- OdbcReferenceCollection.cs
- Expander.cs
- FileVersion.cs
- EntityViewGenerator.cs
- CqlLexerHelpers.cs
- ClientSponsor.cs
- XsltQilFactory.cs
- SQLStringStorage.cs
- RoleManagerModule.cs
- CuspData.cs
- IndexingContentUnit.cs
- HierarchicalDataBoundControl.cs
- ClrProviderManifest.cs
- SimpleBitVector32.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- RegexGroupCollection.cs
- HealthMonitoringSection.cs
- DeferredBinaryDeserializerExtension.cs
- OracleBoolean.cs
- CanonicalFontFamilyReference.cs
- TextContainerHelper.cs
- complextypematerializer.cs
- PatternMatchRules.cs
- PenLineJoinValidation.cs
- BitmapFrameEncode.cs
- EntityContainerEmitter.cs
- Int32EqualityComparer.cs
- ClientOptions.cs
- ArgumentNullException.cs
- MetroSerializationManager.cs
- OpenFileDialog.cs
- GridViewSelectEventArgs.cs
- ResXBuildProvider.cs
- DataError.cs
- CodeSnippetTypeMember.cs
- XmlAttributeOverrides.cs
- XmlnsDefinitionAttribute.cs
- ReflectTypeDescriptionProvider.cs
- _RequestLifetimeSetter.cs
- SqlFlattener.cs
- NameObjectCollectionBase.cs