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
- ExpressionVisitorHelpers.cs
- ScriptRegistrationManager.cs
- Wildcard.cs
- ObjectConverter.cs
- ThrowOnMultipleAssignment.cs
- AlternationConverter.cs
- SystemKeyConverter.cs
- MailAddressParser.cs
- Window.cs
- DataGridViewColumnConverter.cs
- localization.cs
- LocalizableResourceBuilder.cs
- ActiveXHelper.cs
- SqlDataSourceCache.cs
- FixedPageAutomationPeer.cs
- FixedSOMImage.cs
- IncrementalCompileAnalyzer.cs
- CorrelationService.cs
- AssemblyResourceLoader.cs
- FilterableAttribute.cs
- SourceFileBuildProvider.cs
- ObjectViewFactory.cs
- CookieParameter.cs
- ProtocolState.cs
- EpmSourceTree.cs
- ConfigurationElementCollection.cs
- DataSourceXmlTextReader.cs
- ReaderWriterLock.cs
- SrgsDocument.cs
- TraceLog.cs
- _CommandStream.cs
- BrowserTree.cs
- MergeLocalizationDirectives.cs
- Win32Native.cs
- EmissiveMaterial.cs
- XmlEncodedRawTextWriter.cs
- DataObjectMethodAttribute.cs
- NativeMethodsCLR.cs
- ArraySegment.cs
- BufferedOutputStream.cs
- RequestCachingSection.cs
- HTTPNotFoundHandler.cs
- AsymmetricAlgorithm.cs
- AssemblyAssociatedContentFileAttribute.cs
- WebPartEventArgs.cs
- Triplet.cs
- RayHitTestParameters.cs
- TraversalRequest.cs
- GradientStop.cs
- ArrayElementGridEntry.cs
- ParseHttpDate.cs
- EntityDataSourceChangedEventArgs.cs
- SchemaImporterExtensionElementCollection.cs
- ImmutableCollection.cs
- WebPartConnectionsConfigureVerb.cs
- PeerApplicationLaunchInfo.cs
- CatalogZoneBase.cs
- EventLogPermission.cs
- XPathDescendantIterator.cs
- _DomainName.cs
- StringStorage.cs
- SafeProcessHandle.cs
- GlyphRunDrawing.cs
- ResourceBinder.cs
- DataTrigger.cs
- MyContact.cs
- PnrpPeerResolverElement.cs
- CompareValidator.cs
- New.cs
- CaseStatement.cs
- WindowsGraphics.cs
- MultipartIdentifier.cs
- UriSectionReader.cs
- XmlParserContext.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- Connection.cs
- SystemColorTracker.cs
- FileDialog.cs
- Util.cs
- LiteralLink.cs
- ActiveXSite.cs
- MiniCustomAttributeInfo.cs
- ClientSession.cs
- DataControlReferenceCollection.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- MsmqAppDomainProtocolHandler.cs
- RichTextBoxAutomationPeer.cs
- UserInitiatedRoutedEventPermission.cs
- XmlSerializationGeneratedCode.cs
- DispatcherFrame.cs
- QilSortKey.cs
- TrustManagerPromptUI.cs
- DBCommandBuilder.cs
- TraceHandler.cs
- JapaneseLunisolarCalendar.cs
- ElapsedEventArgs.cs
- Transactions.cs
- handlecollector.cs
- LinkDesigner.cs
- ContractMapping.cs