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
- XmlProcessingInstruction.cs
- SqlRetyper.cs
- SrgsElement.cs
- EnumValidator.cs
- Vector3D.cs
- ListBoxDesigner.cs
- ThemeConfigurationDialog.cs
- Context.cs
- StringAttributeCollection.cs
- Nullable.cs
- ResizeGrip.cs
- Int32KeyFrameCollection.cs
- TreeBuilderBamlTranslator.cs
- BuildProvidersCompiler.cs
- DataSourceCacheDurationConverter.cs
- SigningProgress.cs
- TouchFrameEventArgs.cs
- TransactionManager.cs
- TemplateParser.cs
- RouteItem.cs
- TextFormatterImp.cs
- TypeNameHelper.cs
- Win32.cs
- InvokeBase.cs
- SecurityState.cs
- QueryOperationResponseOfT.cs
- RTLAwareMessageBox.cs
- TriggerCollection.cs
- RecipientIdentity.cs
- IncomingWebResponseContext.cs
- SQLBytesStorage.cs
- Menu.cs
- Assert.cs
- AsnEncodedData.cs
- DiagnosticTraceSource.cs
- CompoundFileDeflateTransform.cs
- DescriptionAttribute.cs
- NetworkCredential.cs
- ValueQuery.cs
- AuthenticationServiceManager.cs
- SettingsAttributes.cs
- ObjectToIdCache.cs
- DateTimeParse.cs
- IteratorFilter.cs
- SiteMapNode.cs
- WMICapabilities.cs
- coordinatorfactory.cs
- Header.cs
- XPathNodeInfoAtom.cs
- StateRuntime.cs
- ComAdminWrapper.cs
- SafeCloseHandleCritical.cs
- FormsIdentity.cs
- StrokeNodeEnumerator.cs
- DbgUtil.cs
- SortExpressionBuilder.cs
- Region.cs
- RelationshipEnd.cs
- RewritingSimplifier.cs
- MessageSecurityException.cs
- BrowserDefinition.cs
- CacheVirtualItemsEvent.cs
- WindowsProgressbar.cs
- Configuration.cs
- D3DImage.cs
- UIElementHelper.cs
- ShortcutKeysEditor.cs
- WindowsGrip.cs
- SmiMetaData.cs
- WithStatement.cs
- ControllableStoryboardAction.cs
- FloatUtil.cs
- SeparatorAutomationPeer.cs
- CanonicalXml.cs
- AgileSafeNativeMemoryHandle.cs
- MultiBindingExpression.cs
- ProtocolsConfigurationEntry.cs
- DataControlLinkButton.cs
- IncrementalCompileAnalyzer.cs
- DeploymentSection.cs
- DataContractAttribute.cs
- LogArchiveSnapshot.cs
- TimeSpanConverter.cs
- PixelShader.cs
- DataTableCollection.cs
- GeometryModel3D.cs
- FixUpCollection.cs
- PeerContact.cs
- XmlObjectSerializerReadContextComplex.cs
- ScriptReference.cs
- WindowsIdentity.cs
- RtfFormatStack.cs
- ContentPathSegment.cs
- PropertySourceInfo.cs
- Color.cs
- DropTarget.cs
- QuotedStringWriteStateInfo.cs
- WindowClosedEventArgs.cs
- DesignOnlyAttribute.cs
- ADMembershipProvider.cs