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
- BinaryMessageEncodingBindingElement.cs
- XmlnsPrefixAttribute.cs
- DataBoundControlParameterTarget.cs
- StorageScalarPropertyMapping.cs
- CellConstantDomain.cs
- XsdDuration.cs
- DesignerResources.cs
- RadioButtonStandardAdapter.cs
- PolicyManager.cs
- PrivilegedConfigurationManager.cs
- BaseProcessor.cs
- EntityViewGenerationAttribute.cs
- OperatingSystem.cs
- NativeCppClassAttribute.cs
- FunctionParameter.cs
- KeyValuePair.cs
- RequiredAttributeAttribute.cs
- CounterCreationDataConverter.cs
- ValueQuery.cs
- MbpInfo.cs
- ConfigXmlComment.cs
- ReferenceService.cs
- XomlCompilerError.cs
- ProjectionCamera.cs
- SurrogateSelector.cs
- VariableReference.cs
- DocumentSequenceHighlightLayer.cs
- MemberProjectionIndex.cs
- DefaultExpression.cs
- MsmqIntegrationSecurity.cs
- ProfilePropertySettings.cs
- CodeDOMProvider.cs
- ProfileGroupSettingsCollection.cs
- NetworkCredential.cs
- DrawingState.cs
- PieceNameHelper.cs
- WebPartDeleteVerb.cs
- FixedBufferAttribute.cs
- BitmapPalettes.cs
- CleanUpVirtualizedItemEventArgs.cs
- X509CertificateTokenFactoryCredential.cs
- DetailsViewDeletedEventArgs.cs
- DBBindings.cs
- DrawingGroupDrawingContext.cs
- ClaimComparer.cs
- SqlLiftIndependentRowExpressions.cs
- QilFactory.cs
- CodeLabeledStatement.cs
- RequiredFieldValidator.cs
- EditorBrowsableAttribute.cs
- ContainerParaClient.cs
- FormCollection.cs
- MemoryRecordBuffer.cs
- BuiltInExpr.cs
- XPathPatternBuilder.cs
- ConnectionManagementSection.cs
- URLBuilder.cs
- RbTree.cs
- SingleStorage.cs
- ScrollBarAutomationPeer.cs
- TcpSocketManager.cs
- DataRelation.cs
- StringHandle.cs
- Pts.cs
- SqlConnectionPoolProviderInfo.cs
- contentDescriptor.cs
- PermissionAttributes.cs
- StorageTypeMapping.cs
- LogLogRecordEnumerator.cs
- ButtonBaseDesigner.cs
- ExpandCollapseProviderWrapper.cs
- HtmlControl.cs
- ColorConverter.cs
- BindingExpressionBase.cs
- IconBitmapDecoder.cs
- BindingCollection.cs
- LoadedOrUnloadedOperation.cs
- RefExpr.cs
- WebServiceData.cs
- ToolStripItemEventArgs.cs
- SvcMapFileSerializer.cs
- MenuItem.cs
- DetailsViewPageEventArgs.cs
- TextRangeSerialization.cs
- DrawingCollection.cs
- COM2IDispatchConverter.cs
- Lease.cs
- ToolStripItemClickedEventArgs.cs
- StringAnimationBase.cs
- CellCreator.cs
- StateDesigner.LayoutSelectionGlyph.cs
- ObsoleteAttribute.cs
- ToolStripDropDownClosedEventArgs.cs
- Decimal.cs
- ResXResourceSet.cs
- Walker.cs
- RegistryConfigurationProvider.cs
- ParameterCollection.cs
- DashStyle.cs
- SchemaSetCompiler.cs