Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / DynamicActivity.cs / 1305376 / DynamicActivity.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities { using System; using System.Activities.Runtime; using System.Activities.Validation; using System.Activities.XamlIntegration; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime; using System.Windows.Markup; using System.Xaml; [ContentProperty("Implementation")] public sealed class DynamicActivity : Activity, ICustomTypeDescriptor, IDynamicActivity { Activity runtimeImplementation; DynamicActivityTypeDescriptor typeDescriptor; Collectionattributes; public DynamicActivity() : base() { this.typeDescriptor = new DynamicActivityTypeDescriptor(this); } public string Name { get { return this.typeDescriptor.Name; } set { this.typeDescriptor.Name = value; } } [DependsOn("Name")] public Collection Attributes { get { if (this.attributes == null) { this.attributes = new Collection (); } return this.attributes; } } [Browsable(false)] [DependsOn("Attributes")] public KeyedCollection Properties { get { return this.typeDescriptor.Properties; } } [DependsOn("Properties")] public new Collection Constraints { get { return base.Constraints; } } [XamlDeferLoad(typeof(FuncDeferringLoader), typeof(Activity))] [DefaultValue(null)] [Browsable(false)] [Ambient] public new Func Implementation { get { return base.Implementation; } set { base.Implementation = value; } } KeyedCollection IDynamicActivity.Properties { get { return this.Properties; } } internal override void InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { if (this.runtimeImplementation != null) { executor.ScheduleActivity(this.runtimeImplementation, instance, null, null, null); } } sealed internal override void OnInternalCacheMetadata(bool createEmptyBindings) { Activity body = null; if (this.Implementation != null) { body = this.Implementation(); } if (body != null) { SetImplementationChildrenCollection(new Collection { body }); } // Always cache the last body that we returned this.runtimeImplementation = body; ReflectedInformation information = new ReflectedInformation(this); SetImportedChildrenCollection(information.GetChildren()); SetVariablesCollection(information.GetVariables()); SetImportedDelegatesCollection(information.GetDelegates()); SetArgumentsCollection(information.GetArguments(), createEmptyBindings); } AttributeCollection ICustomTypeDescriptor.GetAttributes() { return this.typeDescriptor.GetAttributes(); } string ICustomTypeDescriptor.GetClassName() { return this.typeDescriptor.GetClassName(); } string ICustomTypeDescriptor.GetComponentName() { return this.typeDescriptor.GetComponentName(); } TypeConverter ICustomTypeDescriptor.GetConverter() { return this.typeDescriptor.GetConverter(); } EventDescriptor ICustomTypeDescriptor.GetDefaultEvent() { return this.typeDescriptor.GetDefaultEvent(); } PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty() { return this.typeDescriptor.GetDefaultProperty(); } object ICustomTypeDescriptor.GetEditor(Type editorBaseType) { return this.typeDescriptor.GetEditor(editorBaseType); } EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes) { return this.typeDescriptor.GetEvents(attributes); } EventDescriptorCollection ICustomTypeDescriptor.GetEvents() { return this.typeDescriptor.GetEvents(); } PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties() { return this.typeDescriptor.GetProperties(); } PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes) { return this.typeDescriptor.GetProperties(attributes); } object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd) { return this.typeDescriptor.GetPropertyOwner(pd); } } [ContentProperty("Implementation")] public sealed class DynamicActivity : Activity , ICustomTypeDescriptor, IDynamicActivity { Activity runtimeImplementation; DynamicActivityTypeDescriptor typeDescriptor; Collection attributes; public DynamicActivity() : base() { this.typeDescriptor = new DynamicActivityTypeDescriptor(this); } public string Name { get { return this.typeDescriptor.Name; } set { this.typeDescriptor.Name = value; } } [DependsOn("Name")] public Collection Attributes { get { if (this.attributes == null) { this.attributes = new Collection (); } return this.attributes; } } [Browsable(false)] [DependsOn("Attributes")] public KeyedCollection Properties { get { return this.typeDescriptor.Properties; } } [DependsOn("Properties")] public new Collection Constraints { get { return base.Constraints; } } [XamlDeferLoad(typeof(FuncDeferringLoader), typeof(Activity))] [DefaultValue(null)] [Browsable(false)] [Ambient] public new Func Implementation { get { return base.Implementation; } set { base.Implementation = value; } } KeyedCollection IDynamicActivity.Properties { get { return this.Properties; } } internal override void InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { if (this.runtimeImplementation != null) { executor.ScheduleActivity(this.runtimeImplementation, instance, null, null, null); } } sealed internal override void OnInternalCacheMetadataExceptResult(bool createEmptyBindings) { Activity body = null; if (this.Implementation != null) { body = this.Implementation(); } if (body != null) { SetImplementationChildrenCollection(new Collection { body }); } // Always cache the last body that we returned this.runtimeImplementation = body; ReflectedInformation information = new ReflectedInformation(this); SetImportedChildrenCollection(information.GetChildren()); SetVariablesCollection(information.GetVariables()); SetImportedDelegatesCollection(information.GetDelegates()); SetArgumentsCollection(information.GetArguments(), createEmptyBindings); } AttributeCollection ICustomTypeDescriptor.GetAttributes() { return this.typeDescriptor.GetAttributes(); } string ICustomTypeDescriptor.GetClassName() { return this.typeDescriptor.GetClassName(); } string ICustomTypeDescriptor.GetComponentName() { return this.typeDescriptor.GetComponentName(); } TypeConverter ICustomTypeDescriptor.GetConverter() { return this.typeDescriptor.GetConverter(); } EventDescriptor ICustomTypeDescriptor.GetDefaultEvent() { return this.typeDescriptor.GetDefaultEvent(); } PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty() { return this.typeDescriptor.GetDefaultProperty(); } object ICustomTypeDescriptor.GetEditor(Type editorBaseType) { return this.typeDescriptor.GetEditor(editorBaseType); } EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes) { return this.typeDescriptor.GetEvents(attributes); } EventDescriptorCollection ICustomTypeDescriptor.GetEvents() { return this.typeDescriptor.GetEvents(); } PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties() { return this.typeDescriptor.GetProperties(); } PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes) { return this.typeDescriptor.GetProperties(attributes); } object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd) { return this.typeDescriptor.GetPropertyOwner(pd); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ArithmeticException.cs
- ProtocolState.cs
- BinaryNode.cs
- DataSysAttribute.cs
- DateTimeConverter.cs
- SqlNodeTypeOperators.cs
- CustomCredentialPolicy.cs
- ExpressionTable.cs
- BamlReader.cs
- DataGridViewTextBoxCell.cs
- StringExpressionSet.cs
- NavigationProperty.cs
- FontInfo.cs
- ReachPageContentCollectionSerializer.cs
- ColorContextHelper.cs
- BrowserCapabilitiesFactoryBase.cs
- SelfIssuedAuthProofToken.cs
- SqlDependencyListener.cs
- XhtmlBasicTextViewAdapter.cs
- OleDbPermission.cs
- HTTPNotFoundHandler.cs
- BitmapEffectCollection.cs
- basemetadatamappingvisitor.cs
- MessageQueueException.cs
- TextRangeProviderWrapper.cs
- XmlCharCheckingReader.cs
- VolatileEnlistmentState.cs
- DetailsViewInsertEventArgs.cs
- RoleManagerSection.cs
- DebugViewWriter.cs
- LowerCaseStringConverter.cs
- SecurityKeyUsage.cs
- WebPartAddingEventArgs.cs
- ReadOnlyNameValueCollection.cs
- SharedConnectionInfo.cs
- OrthographicCamera.cs
- CheckPair.cs
- MenuBindingsEditor.cs
- PieceDirectory.cs
- TcpSocketManager.cs
- DateTimeSerializationSection.cs
- SortQuery.cs
- Assert.cs
- StringBlob.cs
- Style.cs
- ReservationNotFoundException.cs
- ToolBarButtonClickEvent.cs
- __FastResourceComparer.cs
- DirectoryRedirect.cs
- XmlReaderSettings.cs
- ListItemCollection.cs
- SerialPinChanges.cs
- ImageFormatConverter.cs
- DataSpaceManager.cs
- CallbackValidator.cs
- NativeMethods.cs
- DSASignatureDeformatter.cs
- ImplicitInputBrush.cs
- CustomErrorCollection.cs
- FontFaceLayoutInfo.cs
- DispatcherTimer.cs
- path.cs
- AuthenticateEventArgs.cs
- TextBoxAutoCompleteSourceConverter.cs
- BitmapFrameEncode.cs
- ExpressionBuilder.cs
- QuaternionAnimationBase.cs
- FaultException.cs
- UrlMappingsSection.cs
- AccessControlEntry.cs
- OperatorExpressions.cs
- NativeMethods.cs
- ProfilePropertyMetadata.cs
- BuildResult.cs
- ExpressionBindings.cs
- Image.cs
- ParameterModifier.cs
- WebPartEditorOkVerb.cs
- BroadcastEventHelper.cs
- DataGridState.cs
- WebHttpSecurity.cs
- StrongNamePublicKeyBlob.cs
- XamlDesignerSerializationManager.cs
- XmlSchemaRedefine.cs
- TraceSwitch.cs
- FrameworkContentElement.cs
- XLinq.cs
- StrongTypingException.cs
- DrawTreeNodeEventArgs.cs
- LexicalChunk.cs
- ConfigPathUtility.cs
- ContractUtils.cs
- CAGDesigner.cs
- ContextMenuService.cs
- DBConnection.cs
- SoapFormatter.cs
- QilSortKey.cs
- DSACryptoServiceProvider.cs
- PermissionRequestEvidence.cs
- ServiceDescriptionReflector.cs