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
- CodeDelegateCreateExpression.cs
- MDIControlStrip.cs
- XamlPointCollectionSerializer.cs
- XmlDocumentFragment.cs
- PriorityItem.cs
- ArgumentNullException.cs
- HeaderLabel.cs
- XmlSchemaInfo.cs
- SecurityRuntime.cs
- DecimalAnimationUsingKeyFrames.cs
- EntityTransaction.cs
- XmlSchemaNotation.cs
- SettingsBindableAttribute.cs
- QuaternionKeyFrameCollection.cs
- PersistNameAttribute.cs
- TimelineGroup.cs
- DictionarySectionHandler.cs
- ControlsConfig.cs
- Single.cs
- ColorTransformHelper.cs
- JsonFormatReaderGenerator.cs
- HttpModuleActionCollection.cs
- CryptoApi.cs
- EventEntry.cs
- MappingSource.cs
- DesignerCalendarAdapter.cs
- CommandHelpers.cs
- Attributes.cs
- RoleBoolean.cs
- CultureNotFoundException.cs
- Journal.cs
- TextSelectionHighlightLayer.cs
- AlphaSortedEnumConverter.cs
- GatewayIPAddressInformationCollection.cs
- MultiSelector.cs
- CqlQuery.cs
- ToolBarPanel.cs
- AccessorTable.cs
- ObjectParameter.cs
- BindingsCollection.cs
- CngKeyBlobFormat.cs
- HtmlTableRowCollection.cs
- ThumbAutomationPeer.cs
- SecurityPermission.cs
- OuterGlowBitmapEffect.cs
- Int16.cs
- LogicalExpressionEditor.cs
- WindowsRichEditRange.cs
- DataTemplate.cs
- PathSegmentCollection.cs
- SerializerWriterEventHandlers.cs
- HttpPostedFileWrapper.cs
- SelectionList.cs
- XmlHierarchicalDataSourceView.cs
- DataGridItemCollection.cs
- ListViewCommandEventArgs.cs
- ComponentFactoryHelpers.cs
- Guid.cs
- GenericPrincipal.cs
- TiffBitmapDecoder.cs
- AppDomainUnloadedException.cs
- DependencyProperty.cs
- ClassicBorderDecorator.cs
- FunctionNode.cs
- MailAddress.cs
- SrgsGrammarCompiler.cs
- RuntimeHelpers.cs
- _SpnDictionary.cs
- DataGridViewEditingControlShowingEventArgs.cs
- RangeValuePattern.cs
- OuterGlowBitmapEffect.cs
- HtmlShimManager.cs
- ProfileGroupSettingsCollection.cs
- HotCommands.cs
- GetParentChain.cs
- MSAAWinEventWrap.cs
- DPAPIProtectedConfigurationProvider.cs
- PolyQuadraticBezierSegment.cs
- ApplicationFileParser.cs
- InputMethodStateTypeInfo.cs
- NameSpaceExtractor.cs
- QilScopedVisitor.cs
- RemotingConfiguration.cs
- PropertyChangedEventManager.cs
- CharacterBuffer.cs
- MatrixTransform.cs
- SqlXmlStorage.cs
- SchemaMapping.cs
- ContainerParaClient.cs
- GetPageCompletedEventArgs.cs
- CompilationLock.cs
- UserControl.cs
- X509Extension.cs
- DocumentViewerBase.cs
- SQLInt32.cs
- ProbeMatchesCD1.cs
- IsolatedStorageFile.cs
- GeneralTransform.cs
- FacetChecker.cs
- GenericWebPart.cs