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
- MenuAutomationPeer.cs
- XmlSchemaAppInfo.cs
- TableParagraph.cs
- DefaultObjectMappingItemCollection.cs
- DrawItemEvent.cs
- OdbcTransaction.cs
- IUnknownConstantAttribute.cs
- OperationCanceledException.cs
- ContactManager.cs
- ColumnResizeAdorner.cs
- CircleHotSpot.cs
- AppDomainUnloadedException.cs
- TimersDescriptionAttribute.cs
- _NegoStream.cs
- WebRequestModulesSection.cs
- PtsHelper.cs
- XmlSchemaParticle.cs
- MarshalByRefObject.cs
- XsdDateTime.cs
- CurrentChangingEventManager.cs
- Math.cs
- MenuItemCollection.cs
- VisualProxy.cs
- PropertyChangeTracker.cs
- TableLayoutSettings.cs
- InputBinding.cs
- ActivityScheduledRecord.cs
- ErrorEventArgs.cs
- TextComposition.cs
- Deserializer.cs
- FixedDocument.cs
- TemplateContainer.cs
- GradientStopCollection.cs
- TreeView.cs
- SafeArrayRankMismatchException.cs
- Connection.cs
- DataGridTextBox.cs
- Pair.cs
- ModelTreeEnumerator.cs
- PassportAuthentication.cs
- WindowsScrollBar.cs
- IsolatedStorageFile.cs
- TableCellCollection.cs
- SplashScreenNativeMethods.cs
- DrawingState.cs
- SizeChangedEventArgs.cs
- X509Utils.cs
- RoutedEventHandlerInfo.cs
- ToolZone.cs
- GenericTypeParameterBuilder.cs
- Barrier.cs
- SettingsPropertyNotFoundException.cs
- RIPEMD160.cs
- ParseNumbers.cs
- HttpPostProtocolReflector.cs
- InProcStateClientManager.cs
- updateconfighost.cs
- CounterCreationData.cs
- ProtocolsConfigurationEntry.cs
- PageRouteHandler.cs
- StreamMarshaler.cs
- WorkflowTransactionService.cs
- DotNetATv1WindowsLogEntryDeserializer.cs
- ConnectionsZoneDesigner.cs
- SkewTransform.cs
- DesignOnlyAttribute.cs
- DocumentPage.cs
- ByteAnimationUsingKeyFrames.cs
- EraserBehavior.cs
- PropertyTabAttribute.cs
- DataMisalignedException.cs
- ListItemDetailViewAttribute.cs
- SignedInfo.cs
- UserUseLicenseDictionaryLoader.cs
- ClaimSet.cs
- SiteMapNodeItemEventArgs.cs
- TraceRecord.cs
- Vector3DAnimationUsingKeyFrames.cs
- HasCopySemanticsAttribute.cs
- FormsAuthenticationEventArgs.cs
- TypefaceMetricsCache.cs
- TimeoutConverter.cs
- BlobPersonalizationState.cs
- EntityTypeEmitter.cs
- ListViewGroup.cs
- RectAnimation.cs
- HelpInfo.cs
- AutoScrollHelper.cs
- DataGridViewRowHeaderCell.cs
- WebPartExportVerb.cs
- ResourceManager.cs
- MonthChangedEventArgs.cs
- SourceCollection.cs
- DetailsViewPagerRow.cs
- SystemIPInterfaceStatistics.cs
- OleDbConnectionFactory.cs
- RawUIStateInputReport.cs
- SystemIPAddressInformation.cs
- Vector.cs
- ResolveNameEventArgs.cs