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
- CacheDependency.cs
- ServiceDocument.cs
- ProcessRequestArgs.cs
- BitmapDecoder.cs
- AutomationIdentifierGuids.cs
- SimpleFieldTemplateFactory.cs
- DateTimeOffset.cs
- TemplateControl.cs
- Int32CollectionConverter.cs
- EventToken.cs
- KeyToListMap.cs
- ExtenderProvidedPropertyAttribute.cs
- EmptyControlCollection.cs
- ComponentCodeDomSerializer.cs
- XmlCustomFormatter.cs
- TypeForwardedToAttribute.cs
- IncrementalReadDecoders.cs
- WmlLiteralTextAdapter.cs
- ProfileModule.cs
- SafeNativeMethods.cs
- SelectedDatesCollection.cs
- ZipIOExtraFieldZip64Element.cs
- IFlowDocumentViewer.cs
- MailAddressCollection.cs
- GPRECTF.cs
- ContentElement.cs
- FormatConvertedBitmap.cs
- SchemaObjectWriter.cs
- ProfilePropertyNameValidator.cs
- PeerObject.cs
- SecurityPermission.cs
- WinEventQueueItem.cs
- BitmapEffectvisualstate.cs
- EditorZone.cs
- DesignBindingEditor.cs
- FixedTextBuilder.cs
- DataSourceGeneratorException.cs
- ReceiveParametersContent.cs
- PasswordRecovery.cs
- FileRecordSequenceHelper.cs
- WebBrowserBase.cs
- SmiXetterAccessMap.cs
- DataControlFieldsEditor.cs
- UserControlCodeDomTreeGenerator.cs
- SettingsProviderCollection.cs
- PieceNameHelper.cs
- NavigatorOutput.cs
- BitmapMetadata.cs
- DataSourceCollectionBase.cs
- Section.cs
- SecurityKeyIdentifier.cs
- TemplateBindingExpressionConverter.cs
- UnsafePeerToPeerMethods.cs
- ObjectDataSourceStatusEventArgs.cs
- CommandExpr.cs
- PrivilegeNotHeldException.cs
- CommonRemoteMemoryBlock.cs
- PrePrepareMethodAttribute.cs
- SystemGatewayIPAddressInformation.cs
- CapacityStreamGeometryContext.cs
- DataSourceComponent.cs
- DisposableCollectionWrapper.cs
- AlternateViewCollection.cs
- DiagnosticSection.cs
- TransactionManager.cs
- Speller.cs
- OperationCanceledException.cs
- EntityProxyFactory.cs
- PageAsyncTask.cs
- SetIterators.cs
- SearchForVirtualItemEventArgs.cs
- Frame.cs
- PtsPage.cs
- GraphicsState.cs
- WebBrowserUriTypeConverter.cs
- ArgIterator.cs
- WinFormsSpinner.cs
- EntityViewGenerator.cs
- WebPartDeleteVerb.cs
- ReadContentAsBinaryHelper.cs
- ContainerParaClient.cs
- JsonObjectDataContract.cs
- ReflectTypeDescriptionProvider.cs
- DataErrorValidationRule.cs
- QueryOperationResponseOfT.cs
- Exceptions.cs
- IsolatedStorageFile.cs
- SqlClientFactory.cs
- SafeHandles.cs
- OperationBehaviorAttribute.cs
- ListenerSessionConnectionReader.cs
- CriticalHandle.cs
- Reference.cs
- _ChunkParse.cs
- cache.cs
- CharAnimationBase.cs
- TypeExtension.cs
- Variant.cs
- ScriptModule.cs
- DBConnection.cs