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
- MultipartContentParser.cs
- ActivationServices.cs
- XhtmlConformanceSection.cs
- GrammarBuilder.cs
- activationcontext.cs
- WindowsStatic.cs
- ItemCollection.cs
- ShaperBuffers.cs
- TableAutomationPeer.cs
- WorkflowInstanceProxy.cs
- SelectingProviderEventArgs.cs
- SecondaryViewProvider.cs
- SafeSecurityHandles.cs
- Internal.cs
- ErrorItem.cs
- ToolStripButton.cs
- IISUnsafeMethods.cs
- HtmlTable.cs
- WebConfigurationHost.cs
- DataGridColumnCollection.cs
- OdbcError.cs
- PopupControlService.cs
- ConvertEvent.cs
- DataGridTextBoxColumn.cs
- CodeDOMProvider.cs
- CssClassPropertyAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- ContextBase.cs
- DictionarySectionHandler.cs
- HttpStreamMessage.cs
- QueryCacheEntry.cs
- EncodingDataItem.cs
- XmlSchemaComplexType.cs
- DefaultAutoFieldGenerator.cs
- ContextInformation.cs
- ToolStripPanelRow.cs
- KeyBinding.cs
- AnnotationResource.cs
- DataTemplate.cs
- TypeResolver.cs
- ConnectionStringsSection.cs
- HttpRequest.cs
- ValueType.cs
- DocumentViewerHelper.cs
- RuntimeCompatibilityAttribute.cs
- BuildResultCache.cs
- OrderedDictionaryStateHelper.cs
- ViewgenGatekeeper.cs
- Relationship.cs
- XmlSignatureManifest.cs
- Adorner.cs
- DiagnosticTrace.cs
- ControlAdapter.cs
- PenThreadPool.cs
- SQLMembershipProvider.cs
- ColorConvertedBitmap.cs
- ExpressionSelection.cs
- HistoryEventArgs.cs
- cache.cs
- StringUtil.cs
- WindowsButton.cs
- X509SubjectKeyIdentifierClause.cs
- KnownTypeHelper.cs
- ItemsControlAutomationPeer.cs
- __ConsoleStream.cs
- SpecialNameAttribute.cs
- RecognizerBase.cs
- HtmlLinkAdapter.cs
- GridLength.cs
- NumericUpDownAcceleration.cs
- Parameter.cs
- XamlFigureLengthSerializer.cs
- TimerElapsedEvenArgs.cs
- SessionState.cs
- Menu.cs
- DecimalFormatter.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DynamicILGenerator.cs
- ProxySimple.cs
- FactoryGenerator.cs
- StaticDataManager.cs
- SqlVersion.cs
- SvcMapFileLoader.cs
- HtmlTernaryTree.cs
- DataBoundControl.cs
- PreviousTrackingServiceAttribute.cs
- CustomAttributeSerializer.cs
- VisualTransition.cs
- XmlSchemaComplexContentRestriction.cs
- DataGridViewCellCancelEventArgs.cs
- MemberProjectionIndex.cs
- MessageSecurityProtocol.cs
- CaseInsensitiveComparer.cs
- RoleService.cs
- ClientSettingsSection.cs
- ScaleTransform.cs
- TimeZoneInfo.cs
- EdmProviderManifest.cs
- DragStartedEventArgs.cs
- VisualStyleElement.cs