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
- RegistrationServices.cs
- UriSectionData.cs
- WindowsToolbarItemAsMenuItem.cs
- TextFindEngine.cs
- Assert.cs
- ProfileServiceManager.cs
- RowsCopiedEventArgs.cs
- StylusPlugInCollection.cs
- InlineCollection.cs
- TdsParserSessionPool.cs
- XPathArrayIterator.cs
- RecordManager.cs
- PnrpPeerResolverElement.cs
- AccessDataSource.cs
- CompareInfo.cs
- GridViewHeaderRowPresenter.cs
- TextEffectResolver.cs
- BridgeDataReader.cs
- ActionItem.cs
- Array.cs
- MULTI_QI.cs
- ChangeTracker.cs
- LogStore.cs
- PlainXmlSerializer.cs
- List.cs
- JpegBitmapEncoder.cs
- Native.cs
- CodeAccessSecurityEngine.cs
- Roles.cs
- TableCell.cs
- BinarySerializer.cs
- Currency.cs
- PrintControllerWithStatusDialog.cs
- PageClientProxyGenerator.cs
- DrawTreeNodeEventArgs.cs
- WebPartDeleteVerb.cs
- SpellCheck.cs
- ViewStateModeByIdAttribute.cs
- HtmlListAdapter.cs
- AndCondition.cs
- _PooledStream.cs
- MenuRenderer.cs
- SafeNativeMethods.cs
- MimeWriter.cs
- EffectiveValueEntry.cs
- BaseCollection.cs
- Label.cs
- DataBoundLiteralControl.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- FreeFormDragDropManager.cs
- SecurityUniqueId.cs
- PageHandlerFactory.cs
- Highlights.cs
- CodeAccessPermission.cs
- SerializationHelper.cs
- Pen.cs
- HatchBrush.cs
- HttpListenerResponse.cs
- EmptyEnumerable.cs
- CellCreator.cs
- RNGCryptoServiceProvider.cs
- DataRow.cs
- ThemeInfoAttribute.cs
- PrePostDescendentsWalker.cs
- BaseComponentEditor.cs
- NetCodeGroup.cs
- MouseBinding.cs
- SrgsRuleRef.cs
- RouteUrlExpressionBuilder.cs
- Number.cs
- Privilege.cs
- DataListItemCollection.cs
- Brush.cs
- login.cs
- DateTimeConverter2.cs
- GlyphRun.cs
- ProxyHelper.cs
- ValuePattern.cs
- _SafeNetHandles.cs
- InternalConfigConfigurationFactory.cs
- WebReferencesBuildProvider.cs
- DataGridViewCellPaintingEventArgs.cs
- StrokeCollectionConverter.cs
- DataServiceKeyAttribute.cs
- DataGridPageChangedEventArgs.cs
- DrawTreeNodeEventArgs.cs
- ContentElementAutomationPeer.cs
- SelectorAutomationPeer.cs
- SessionPageStatePersister.cs
- GetWinFXPath.cs
- SiteMapPath.cs
- RunInstallerAttribute.cs
- BasePattern.cs
- ExternalDataExchangeService.cs
- RootProfilePropertySettingsCollection.cs
- IfJoinedCondition.cs
- invalidudtexception.cs
- OleDbDataReader.cs
- NativeMethods.cs
- SmiEventSink_DeferedProcessing.cs