Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / HandleScope.cs / 1305376 / HandleScope.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime; using System.Windows.Markup; [ContentProperty("Body")] public sealed class HandleScope: NativeActivity where THandle : Handle { Variable declaredHandle; public HandleScope() { } public InArgument Handle { get; set; } public Activity Body { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument handleArgument = new RuntimeArgument("Handle", typeof(THandle), ArgumentDirection.In); metadata.Bind(this.Handle, handleArgument); metadata.SetArgumentsCollection(new Collection { handleArgument }); if (this.Body != null) { metadata.SetChildrenCollection(new Collection { this.Body }); } Collection implementationVariables = null; if ((this.Handle == null) || this.Handle.IsEmpty) { if (this.declaredHandle == null) { this.declaredHandle = new Variable (); } } else { this.declaredHandle = null; } if (this.declaredHandle != null) { ActivityUtilities.Add(ref implementationVariables, this.declaredHandle); } metadata.SetImplementationVariablesCollection(implementationVariables); } protected override void Execute(NativeActivityContext context) { // We should go through the motions even if there is no Body for debugging // purposes. When testing handles people will probably use empty scopes // expecting everything except the Body execution to occur. Handle scopedHandle = null; if ((this.Handle == null) || this.Handle.IsEmpty) { Fx.Assert(this.declaredHandle != null, "We should have declared the variable if we didn't have the argument set."); scopedHandle = this.declaredHandle.Get(context); } else { scopedHandle = this.Handle.Get(context); } if (scopedHandle == null) { throw FxTrace.Exception.ArgumentNull("Handle"); } context.Properties.Add(scopedHandle.ExecutionPropertyName, scopedHandle); if (this.Body != null) { context.ScheduleActivity(this.Body); } } } } // 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
- SortDescription.cs
- IteratorFilter.cs
- HybridDictionary.cs
- TraversalRequest.cs
- unsafeIndexingFilterStream.cs
- SqlTopReducer.cs
- _LocalDataStoreMgr.cs
- Model3D.cs
- DatePicker.cs
- StyleXamlParser.cs
- Rfc2898DeriveBytes.cs
- EventLogger.cs
- ObjectSecurity.cs
- Speller.cs
- QilExpression.cs
- CodeCompiler.cs
- ApplicationId.cs
- TimeSpan.cs
- InputProcessorProfiles.cs
- Compiler.cs
- DynamicDataRouteHandler.cs
- EntitySqlException.cs
- KnowledgeBase.cs
- SingleResultAttribute.cs
- BitStream.cs
- BindingContext.cs
- PartitionedDataSource.cs
- _UriSyntax.cs
- EmptyTextWriter.cs
- PartitionResolver.cs
- ServicePointManager.cs
- ApplicationTrust.cs
- SystemIPInterfaceProperties.cs
- RequestDescription.cs
- ExpressionBuilder.cs
- ExtentKey.cs
- IItemContainerGenerator.cs
- MulticastNotSupportedException.cs
- ScalarOps.cs
- Win32PrintDialog.cs
- _CacheStreams.cs
- BufferAllocator.cs
- CellQuery.cs
- BamlReader.cs
- SafeThreadHandle.cs
- RoleManagerEventArgs.cs
- __TransparentProxy.cs
- DependencyPropertyKey.cs
- DockProviderWrapper.cs
- CodeDomSerializerException.cs
- UdpAnnouncementEndpoint.cs
- TypedTableHandler.cs
- DocumentsTrace.cs
- LineSegment.cs
- HitTestWithPointDrawingContextWalker.cs
- SqlDataSourceFilteringEventArgs.cs
- DataTableTypeConverter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ImageBrush.cs
- SizeAnimationBase.cs
- SpeechEvent.cs
- BrowsableAttribute.cs
- ListViewItem.cs
- RectangleConverter.cs
- ToolStripDropDownButton.cs
- ObjectAnimationBase.cs
- SqlDataSourceSelectingEventArgs.cs
- wgx_commands.cs
- SelectionEditor.cs
- ContractCodeDomInfo.cs
- StylusPlugInCollection.cs
- DataRecord.cs
- RootAction.cs
- BitmapSizeOptions.cs
- CommonServiceBehaviorElement.cs
- InputLanguageSource.cs
- WebPartTransformerCollection.cs
- SettingsPropertyValue.cs
- XmlDocumentType.cs
- DisplayInformation.cs
- TemplateBuilder.cs
- ProcessHostMapPath.cs
- InheritanceContextChangedEventManager.cs
- IBuiltInEvidence.cs
- ListDictionary.cs
- AppDomainInfo.cs
- FileDialog.cs
- AutomationElement.cs
- XmlObjectSerializer.cs
- AuthStoreRoleProvider.cs
- Formatter.cs
- IImplicitResourceProvider.cs
- DataSpaceManager.cs
- followingsibling.cs
- MULTI_QI.cs
- ControlTemplate.cs
- UnknownBitmapEncoder.cs
- TypeDependencyAttribute.cs
- FlowDocument.cs
- ThrowHelper.cs