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
- TraversalRequest.cs
- StrokeDescriptor.cs
- DataControlFieldHeaderCell.cs
- XmlSerializableWriter.cs
- SqlDataSourceCache.cs
- TimeStampChecker.cs
- WebPartZoneBaseDesigner.cs
- TemplateInstanceAttribute.cs
- MenuItemBindingCollection.cs
- List.cs
- PerspectiveCamera.cs
- ProcessActivityTreeOptions.cs
- EntitySetDataBindingList.cs
- login.cs
- DoubleConverter.cs
- ControlBuilderAttribute.cs
- GeometryDrawing.cs
- TemplateLookupAction.cs
- SemanticResolver.cs
- DataGridViewImageColumn.cs
- XmlNavigatorStack.cs
- Facet.cs
- CodeTypeParameterCollection.cs
- HttpContextServiceHost.cs
- DataRelationPropertyDescriptor.cs
- ParserStreamGeometryContext.cs
- ADRoleFactory.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- FormViewModeEventArgs.cs
- WebPageTraceListener.cs
- EventLogPermission.cs
- SQLGuidStorage.cs
- CustomSignedXml.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- DigestComparer.cs
- NativeRecognizer.cs
- BoundField.cs
- InputLanguageCollection.cs
- ValueOfAction.cs
- SqlRemoveConstantOrderBy.cs
- PKCS1MaskGenerationMethod.cs
- mediaeventshelper.cs
- ProviderIncompatibleException.cs
- XmlDocumentType.cs
- BlobPersonalizationState.cs
- WebBrowser.cs
- DatePickerTextBox.cs
- BindToObject.cs
- TextEncodedRawTextWriter.cs
- ListViewTableCell.cs
- MutableAssemblyCacheEntry.cs
- HttpHeaderCollection.cs
- AttributeCollection.cs
- CodeAttributeDeclarationCollection.cs
- RenderData.cs
- Button.cs
- ResolveDuplexAsyncResult.cs
- RegexInterpreter.cs
- PeerNameRegistration.cs
- PickBranchDesigner.xaml.cs
- DaylightTime.cs
- RoleManagerSection.cs
- COM2EnumConverter.cs
- COM2ComponentEditor.cs
- SignedInfo.cs
- AggregateNode.cs
- SetStateDesigner.cs
- XmlNodeChangedEventArgs.cs
- CultureTableRecord.cs
- XmlReflectionMember.cs
- TypeUtil.cs
- ResourceAssociationSetEnd.cs
- MdiWindowListItemConverter.cs
- CultureSpecificCharacterBufferRange.cs
- IDReferencePropertyAttribute.cs
- DataGridViewRowConverter.cs
- TileBrush.cs
- AsymmetricKeyExchangeFormatter.cs
- AnimationLayer.cs
- FilterQuery.cs
- LazyTextWriterCreator.cs
- PrimitiveType.cs
- HandlerFactoryWrapper.cs
- messageonlyhwndwrapper.cs
- Imaging.cs
- SqlTypeConverter.cs
- RegexGroupCollection.cs
- SafeNativeMethodsMilCoreApi.cs
- ReadOnlyTernaryTree.cs
- TrustLevelCollection.cs
- ConfigXmlElement.cs
- SecurityHeaderElementInferenceEngine.cs
- DtrList.cs
- SHA1.cs
- SymbolType.cs
- DataViewManagerListItemTypeDescriptor.cs
- FreezableOperations.cs
- ToolStripSplitButton.cs
- BufferedWebEventProvider.cs
- _HeaderInfo.cs