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
- Span.cs
- ListViewInsertEventArgs.cs
- MultiAsyncResult.cs
- TextAutomationPeer.cs
- ToolStripLocationCancelEventArgs.cs
- NameTable.cs
- DataPagerCommandEventArgs.cs
- HtmlHistory.cs
- SmiContextFactory.cs
- AccessibilityHelperForVista.cs
- cookiecollection.cs
- StreamedWorkflowDefinitionContext.cs
- Parser.cs
- AssemblyLoader.cs
- WebSysDisplayNameAttribute.cs
- altserialization.cs
- DocumentNUp.cs
- DataTable.cs
- assemblycache.cs
- OperationDescriptionCollection.cs
- CompilerError.cs
- userdatakeys.cs
- ConnectionStringsSection.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- Rijndael.cs
- SafeProcessHandle.cs
- CorrelationActionMessageFilter.cs
- AlphaSortedEnumConverter.cs
- EntitySqlQueryCacheKey.cs
- SoapSchemaImporter.cs
- Normalization.cs
- ProfessionalColorTable.cs
- Zone.cs
- WebPartRestoreVerb.cs
- FormViewRow.cs
- TimelineClockCollection.cs
- FilterQueryOptionExpression.cs
- StringValidatorAttribute.cs
- DesignerGenericWebPart.cs
- MonitorWrapper.cs
- XmlSchemaSimpleType.cs
- DataTableNewRowEvent.cs
- _Events.cs
- ExtensionSimplifierMarkupObject.cs
- dbenumerator.cs
- TableCellAutomationPeer.cs
- SharedUtils.cs
- SqlRewriteScalarSubqueries.cs
- QueryExpr.cs
- TextPatternIdentifiers.cs
- PropertyItemInternal.cs
- DataGridViewAccessibleObject.cs
- WebPartEditorApplyVerb.cs
- SQLInt64Storage.cs
- SharedConnectionListener.cs
- WebZoneDesigner.cs
- BuildProvider.cs
- DBDataPermissionAttribute.cs
- XmlSerializationReader.cs
- PublishLicense.cs
- BindingsCollection.cs
- SmiXetterAccessMap.cs
- listitem.cs
- _SpnDictionary.cs
- QilReplaceVisitor.cs
- MenuAdapter.cs
- Vars.cs
- AtomicFile.cs
- PeerNameRegistration.cs
- CultureTable.cs
- Lasso.cs
- WinInetCache.cs
- ResXResourceReader.cs
- UnsafeNativeMethods.cs
- FontDifferentiator.cs
- CaseExpr.cs
- AudioFormatConverter.cs
- TimeSpanStorage.cs
- DesignerSerializationVisibilityAttribute.cs
- ModelItemDictionaryImpl.cs
- PageHandlerFactory.cs
- LockCookie.cs
- RadioButton.cs
- HttpRequestTraceRecord.cs
- StreamAsIStream.cs
- LocalFileSettingsProvider.cs
- FrameworkContextData.cs
- CheckBoxRenderer.cs
- InputScopeManager.cs
- TraceHandler.cs
- XmlDsigSep2000.cs
- UserControl.cs
- MimeTypePropertyAttribute.cs
- querybuilder.cs
- _LazyAsyncResult.cs
- TextWriterTraceListener.cs
- ListView.cs
- AsyncResult.cs
- ReflectionServiceProvider.cs
- GZipUtils.cs