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
- RawAppCommandInputReport.cs
- BufferedReadStream.cs
- XmlDocumentType.cs
- AttributeProviderAttribute.cs
- SystemIPGlobalProperties.cs
- RegisteredHiddenField.cs
- SimpleHandlerBuildProvider.cs
- WorkerRequest.cs
- SettingsPropertyNotFoundException.cs
- XmlILModule.cs
- TextEmbeddedObject.cs
- SqlTypeConverter.cs
- PerspectiveCamera.cs
- EpmContentDeSerializerBase.cs
- FindRequestContext.cs
- SymLanguageVendor.cs
- LayoutExceptionEventArgs.cs
- OpenFileDialog.cs
- ValidationResult.cs
- StyleModeStack.cs
- KnownTypesProvider.cs
- ProcessProtocolHandler.cs
- ApplicationContext.cs
- CancelEventArgs.cs
- EmptyStringExpandableObjectConverter.cs
- QilScopedVisitor.cs
- PathFigureCollectionConverter.cs
- WeakReferenceKey.cs
- ResourceProviderFactory.cs
- ToolTipService.cs
- UnsafeNativeMethods.cs
- LicenseContext.cs
- SqlConnectionString.cs
- Dictionary.cs
- _SslState.cs
- OSFeature.cs
- ToolboxComponentsCreatingEventArgs.cs
- DiagnosticTraceSource.cs
- SplitterEvent.cs
- WebPageTraceListener.cs
- JoinQueryOperator.cs
- CodeRegionDirective.cs
- figurelengthconverter.cs
- DynamicResourceExtensionConverter.cs
- WindowsListViewItem.cs
- ReadOnlyCollectionBuilder.cs
- ThreadStaticAttribute.cs
- HttpSessionStateBase.cs
- NCryptNative.cs
- OracleConnectionStringBuilder.cs
- EdmFunction.cs
- BindingBase.cs
- HostProtectionPermission.cs
- NodeLabelEditEvent.cs
- SkewTransform.cs
- ProxyHelper.cs
- DrawingContextDrawingContextWalker.cs
- xmlfixedPageInfo.cs
- StorageConditionPropertyMapping.cs
- AnimationStorage.cs
- TrustLevelCollection.cs
- XmlQuerySequence.cs
- SoapException.cs
- CorrelationValidator.cs
- DataMemberFieldEditor.cs
- XmlAtomErrorReader.cs
- CertificateElement.cs
- DescendentsWalker.cs
- XmlSchemaSet.cs
- DbMetaDataFactory.cs
- HttpApplicationFactory.cs
- Codec.cs
- SpeakCompletedEventArgs.cs
- SchemaCollectionPreprocessor.cs
- LinkConverter.cs
- FixedTextBuilder.cs
- DeclaredTypeElement.cs
- PageFunction.cs
- _NativeSSPI.cs
- CompositeCollectionView.cs
- RtfToken.cs
- QfeChecker.cs
- GlyphingCache.cs
- RemoteWebConfigurationHost.cs
- DesignColumnCollection.cs
- DbParameterCollectionHelper.cs
- SymLanguageType.cs
- SimpleLine.cs
- OleDbTransaction.cs
- MessageBox.cs
- OpenTypeLayout.cs
- BinaryCommonClasses.cs
- SqlXml.cs
- CodeBinaryOperatorExpression.cs
- XsdBuilder.cs
- ProviderCommandInfoUtils.cs
- Grant.cs
- IfJoinedCondition.cs
- IriParsingElement.cs
- QuadraticBezierSegment.cs