Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Runtime / DelegateCompletionCallbackWrapper.cs / 1305376 / DelegateCompletionCallbackWrapper.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Runtime { using System; using System.Collections.Generic; using System.Runtime; using System.Runtime.Serialization; using System.Security; [DataContract] class DelegateCompletionCallbackWrapper : CompletionCallbackWrapper { static Type callbackType = typeof(DelegateCompletionCallback); static Type[] callbackParameterTypes = new Type [] {typeof(NativeActivityContext), typeof(ActivityInstance), typeof(IDictionary)}; [DataMember(EmitDefaultValue = false)] Dictionary results; public DelegateCompletionCallbackWrapper(DelegateCompletionCallback callback, ActivityInstance owningInstance) : base(callback, owningInstance) { this.NeedsToGatherOutputs = true; } protected override void GatherOutputs(ActivityInstance completedInstance) { if (completedInstance.Activity.HandlerOf != null) { IList runtimeArguments = completedInstance.Activity.HandlerOf.RuntimeDelegateArguments; LocationEnvironment environment = completedInstance.Environment; for (int i = 0; i < runtimeArguments.Count; i++) { RuntimeDelegateArgument runtimeArgument = runtimeArguments[i]; if (runtimeArgument.BoundArgument != null) { if (ArgumentDirectionHelper.IsOut(runtimeArgument.Direction)) { Location parameterLocation = environment.GetSpecificLocation(runtimeArgument.BoundArgument.Id); if (parameterLocation != null) { if (this.results == null) { this.results = new Dictionary (); } this.results.Add(runtimeArgument.Name, parameterLocation.Value); } } } } } } protected internal override void Invoke(NativeActivityContext context, ActivityInstance completedInstance) { EnsureCallback(callbackType, callbackParameterTypes); DelegateCompletionCallback completionCallback = (DelegateCompletionCallback)this.Callback; IDictionary returnValue = this.results; if (returnValue == null) { returnValue = ActivityUtilities.EmptyParameters; } completionCallback(context, completedInstance, returnValue); } } } // 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
- TracePayload.cs
- RealizationContext.cs
- FastEncoder.cs
- ReadOnlyNameValueCollection.cs
- ContentPosition.cs
- CqlLexerHelpers.cs
- DbProviderServices.cs
- CreatingCookieEventArgs.cs
- ActivityInstance.cs
- IdentityNotMappedException.cs
- WinFormsComponentEditor.cs
- PowerStatus.cs
- WSTrustDec2005.cs
- MailWriter.cs
- ContractMapping.cs
- baseshape.cs
- RowTypePropertyElement.cs
- SerializationEventsCache.cs
- HttpCacheVaryByContentEncodings.cs
- sqlser.cs
- documentsequencetextcontainer.cs
- InstancePersistenceCommandException.cs
- ListView.cs
- DispatchChannelSink.cs
- ToolBar.cs
- X509ChainElement.cs
- UpdateProgress.cs
- Configuration.cs
- LogicalExpr.cs
- CSharpCodeProvider.cs
- DocumentViewerAutomationPeer.cs
- RotateTransform3D.cs
- Parameter.cs
- ActivityValidator.cs
- ContextStaticAttribute.cs
- SqlNodeAnnotation.cs
- ReferencedAssembly.cs
- InputLanguageEventArgs.cs
- SchemaReference.cs
- GenericUriParser.cs
- TabletCollection.cs
- DataProtection.cs
- ExpressionBuilder.cs
- AttachedPropertyMethodSelector.cs
- AutoGeneratedFieldProperties.cs
- SmtpTransport.cs
- TcpClientChannel.cs
- Separator.cs
- SmiRecordBuffer.cs
- Rect3D.cs
- SecurityContext.cs
- LayoutTable.cs
- HostExecutionContextManager.cs
- SafeNativeMethodsCLR.cs
- FrameworkElement.cs
- JsonMessageEncoderFactory.cs
- SystemException.cs
- Clause.cs
- SizeLimitedCache.cs
- TrackingProfileCache.cs
- CacheEntry.cs
- SignerInfo.cs
- WebPartUtil.cs
- DataTableMapping.cs
- XmlSerializerObjectSerializer.cs
- WindowsListViewSubItem.cs
- ClientScriptManager.cs
- CacheOutputQuery.cs
- safemediahandle.cs
- ToolboxItemLoader.cs
- StandardCommands.cs
- ViewPort3D.cs
- ObjectIDGenerator.cs
- ServerIdentity.cs
- BinaryFormatterSinks.cs
- Expander.cs
- SqlConnectionString.cs
- AppSettingsSection.cs
- Hash.cs
- InvokeMethodActivityDesigner.cs
- CompensatableTransactionScopeActivityDesigner.cs
- FlowLayoutSettings.cs
- TextBoxBase.cs
- XPathException.cs
- SmiXetterAccessMap.cs
- Accessors.cs
- DataGridColumnStyleMappingNameEditor.cs
- System.Data_BID.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- ArrayList.cs
- DEREncoding.cs
- ConnectionManager.cs
- ListViewGroup.cs
- TaskSchedulerException.cs
- XmlWriterSettings.cs
- DataBoundLiteralControl.cs
- RTTypeWrapper.cs
- DescendentsWalker.cs
- QilPatternVisitor.cs
- SamlConditions.cs