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
- PropertyValueUIItem.cs
- XmlFormatExtensionPointAttribute.cs
- ConfigurationSection.cs
- OperationContractAttribute.cs
- StringArrayConverter.cs
- XamlStyleSerializer.cs
- QuotedStringWriteStateInfo.cs
- EditCommandColumn.cs
- MethodBuilder.cs
- XmlSchemaAnyAttribute.cs
- XmlDocumentSurrogate.cs
- AppLevelCompilationSectionCache.cs
- ExtenderProvidedPropertyAttribute.cs
- RectangleGeometry.cs
- CharUnicodeInfo.cs
- BaseAutoFormat.cs
- DbProviderConfigurationHandler.cs
- TimeSpanOrInfiniteValidator.cs
- ComponentSerializationService.cs
- TraceLevelStore.cs
- QueryResult.cs
- BaseDataListActionList.cs
- IPAddress.cs
- XmlLanguage.cs
- DataTableMapping.cs
- BufferedGraphicsContext.cs
- DesignerLabelAdapter.cs
- PathFigure.cs
- Propagator.Evaluator.cs
- CellLabel.cs
- ProgressBarBrushConverter.cs
- ClientUIRequest.cs
- BridgeDataReader.cs
- State.cs
- OptimalBreakSession.cs
- WeakReferenceEnumerator.cs
- CannotUnloadAppDomainException.cs
- StrokeNodeOperations2.cs
- MethodBody.cs
- ViewPort3D.cs
- ProgressBarBrushConverter.cs
- ToolStripManager.cs
- XmlWrappingWriter.cs
- HtmlLink.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TypeCacheManager.cs
- Track.cs
- SerializationException.cs
- TextEffect.cs
- IList.cs
- ToolStripManager.cs
- FormatConvertedBitmap.cs
- TextTreePropertyUndoUnit.cs
- ClientSideProviderDescription.cs
- XmlSchemaSet.cs
- StatusCommandUI.cs
- BuildProvidersCompiler.cs
- ToolStripScrollButton.cs
- DetailsViewModeEventArgs.cs
- GeometryDrawing.cs
- SignatureHelper.cs
- CustomAttribute.cs
- SessionEndedEventArgs.cs
- SortQuery.cs
- WebPartTransformerAttribute.cs
- EventSinkActivityDesigner.cs
- AssemblyNameProxy.cs
- InternalDispatchObject.cs
- AccessDataSource.cs
- BatchParser.cs
- BindingWorker.cs
- TickBar.cs
- InlineCollection.cs
- ToolStripItemClickedEventArgs.cs
- NullableDecimalSumAggregationOperator.cs
- LinkLabelLinkClickedEvent.cs
- FillBehavior.cs
- APCustomTypeDescriptor.cs
- WasEndpointConfigContainer.cs
- DateTimeFormatInfo.cs
- SurrogateSelector.cs
- PolicyDesigner.cs
- CommandEventArgs.cs
- DbModificationClause.cs
- AtlasWeb.Designer.cs
- Assembly.cs
- LinkDescriptor.cs
- GridViewCommandEventArgs.cs
- TextBreakpoint.cs
- GenericPrincipal.cs
- ValidationErrorCollection.cs
- StaticFileHandler.cs
- SymbolMethod.cs
- DirectoryObjectSecurity.cs
- AncestorChangedEventArgs.cs
- ProtocolsConfiguration.cs
- ActiveXHelper.cs
- ConfigurationManagerInternal.cs
- BufferedGraphics.cs
- __Filters.cs