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
- XmlWrappingReader.cs
- WindowsAuthenticationModule.cs
- MeasureItemEvent.cs
- ReadOnlyDataSource.cs
- LOSFormatter.cs
- Dispatcher.cs
- GuidConverter.cs
- _IPv6Address.cs
- DataTemplate.cs
- PrivilegeNotHeldException.cs
- Monitor.cs
- DateTimeConverter2.cs
- PropertyValueChangedEvent.cs
- SharedPersonalizationStateInfo.cs
- WeakEventTable.cs
- PointIndependentAnimationStorage.cs
- PrintPageEvent.cs
- SizeIndependentAnimationStorage.cs
- XamlInterfaces.cs
- CallbackHandler.cs
- LightweightCodeGenerator.cs
- ExecutorLocksHeldException.cs
- DataSourceHelper.cs
- ClientTargetSection.cs
- SiteMapNode.cs
- IgnorePropertiesAttribute.cs
- DataBoundControlAdapter.cs
- FacetEnabledSchemaElement.cs
- CompareInfo.cs
- AnonymousIdentificationSection.cs
- InheritablePropertyChangeInfo.cs
- SemanticResultValue.cs
- LicenseContext.cs
- AttachedAnnotationChangedEventArgs.cs
- GlyphRunDrawing.cs
- GridViewAutomationPeer.cs
- Matrix3D.cs
- StylusShape.cs
- XmlCDATASection.cs
- WindowsPen.cs
- GetCardDetailsRequest.cs
- FormViewCommandEventArgs.cs
- MetafileHeader.cs
- SQLSingle.cs
- PropertyDescriptor.cs
- FileIOPermission.cs
- TargetPerspective.cs
- GlobalizationAssembly.cs
- CheckBox.cs
- RectangleHotSpot.cs
- UIElementParagraph.cs
- OpenTypeCommon.cs
- StructuredTypeEmitter.cs
- DataTableClearEvent.cs
- VerificationException.cs
- SafePipeHandle.cs
- DeclarativeExpressionConditionDeclaration.cs
- XmlMembersMapping.cs
- LazyTextWriterCreator.cs
- DataGridViewCellCancelEventArgs.cs
- DescriptionAttribute.cs
- TextTreeRootTextBlock.cs
- StyleBamlRecordReader.cs
- IdentifierCreationService.cs
- EdmComplexTypeAttribute.cs
- XXXOnTypeBuilderInstantiation.cs
- IgnorePropertiesAttribute.cs
- PositiveTimeSpanValidator.cs
- NegotiateStream.cs
- TransformationRules.cs
- VerificationAttribute.cs
- OSFeature.cs
- NTAccount.cs
- PaperSize.cs
- SqlFormatter.cs
- ConfigXmlAttribute.cs
- Material.cs
- DataRowCollection.cs
- KoreanCalendar.cs
- HwndKeyboardInputProvider.cs
- Environment.cs
- SHA384Managed.cs
- FontWeight.cs
- SmiGettersStream.cs
- ProtectedProviderSettings.cs
- PersistenceProvider.cs
- WorkflowItemPresenter.cs
- ContainerParaClient.cs
- Decimal.cs
- WeakEventTable.cs
- DynamicRouteExpression.cs
- UrlMappingsModule.cs
- Cloud.cs
- RecognizedAudio.cs
- ByeMessageApril2005.cs
- ProfilePropertySettingsCollection.cs
- DataObjectPastingEventArgs.cs
- altserialization.cs
- Keyboard.cs
- RuntimeArgument.cs