Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Activities / System / ServiceModel / Activities / FromRequest.cs / 1305376 / FromRequest.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Activities { using System.Activities; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime; using System.ServiceModel.Channels; using System.ServiceModel.Dispatcher; using SR2 = System.ServiceModel.Activities.SR; class FromRequest : NativeActivity { Collectionparameters; public InOutArgument Message { get; set; } public IDispatchMessageFormatter Formatter { get; set; } public Collection Parameters { get { if (this.parameters == null) { this.parameters = new Collection (); } return this.parameters; } } public InArgument NoPersistHandle { get; set; } internal bool CloseMessage { get; set; } protected override void CacheMetadata(NativeActivityMetadata metadata) { RuntimeArgument messageArgument = new RuntimeArgument(Constants.Message, Constants.MessageType, ArgumentDirection.InOut, true); metadata.Bind(this.Message, messageArgument); metadata.AddArgument(messageArgument); if (this.parameters != null) { int count = 0; foreach (OutArgument parameter in this.parameters) { RuntimeArgument parameterArgument = new RuntimeArgument(Constants.Parameter + count++, parameter.ArgumentType, ArgumentDirection.Out); metadata.Bind(parameter, parameterArgument); metadata.AddArgument(parameterArgument); } } RuntimeArgument noPersistHandleArgument = new RuntimeArgument(Constants.NoPersistHandle, Constants.NoPersistHandleType, ArgumentDirection.In); metadata.Bind(this.NoPersistHandle, noPersistHandleArgument); metadata.AddArgument(noPersistHandleArgument); } protected override void Execute(NativeActivityContext context) { Message inMessage = null; try { inMessage = this.Message.Get(context); object[] outObjects; if (this.parameters == null || this.parameters.Count == 0) { outObjects = Constants.EmptyArray; } else { outObjects = new object[this.parameters.Count]; } this.Formatter.DeserializeRequest(inMessage, outObjects); if (this.parameters != null) { for (int i = 0; i < this.parameters.Count; i++) { OutArgument outArgument = this.parameters[i]; Fx.Assert(outArgument != null, "Parameter cannot be null"); object obj = outObjects[i]; if (obj == null) { obj = ProxyOperationRuntime.GetDefaultParameterValue(outArgument.ArgumentType); } outArgument.Set(context, obj); } } } finally { if (this.CloseMessage && inMessage != null) { inMessage.Close(); } this.Message.Set(context, null); NoPersistHandle handle = (this.NoPersistHandle == null) ? null : this.NoPersistHandle.Get(context); if (handle != null) { handle.Exit(context); } } } } } // 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
- ListSortDescriptionCollection.cs
- GlobalizationSection.cs
- UniformGrid.cs
- LassoSelectionBehavior.cs
- CallSiteHelpers.cs
- MarkupCompiler.cs
- RIPEMD160.cs
- ConversionContext.cs
- ExpressionContext.cs
- LineServicesRun.cs
- SystemWebCachingSectionGroup.cs
- ExpandCollapseProviderWrapper.cs
- PrintController.cs
- BitmapDecoder.cs
- XmlObjectSerializerContext.cs
- Int64.cs
- FtpWebResponse.cs
- OdbcParameterCollection.cs
- LookupNode.cs
- MembershipPasswordException.cs
- WebConfigurationManager.cs
- QueryCursorEventArgs.cs
- DetailsViewPagerRow.cs
- ScrollData.cs
- LayoutTable.cs
- DataServiceClientException.cs
- Int16Storage.cs
- AppSettingsReader.cs
- XmlIncludeAttribute.cs
- SchemaImporterExtensionsSection.cs
- Debugger.cs
- ClientFormsAuthenticationCredentials.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DesignerVerbCollection.cs
- TextMarkerSource.cs
- SqlDataSourceCommandEventArgs.cs
- EditingCoordinator.cs
- DeviceContext2.cs
- fixedPageContentExtractor.cs
- OdbcConnectionOpen.cs
- ResetableIterator.cs
- IBuiltInEvidence.cs
- KnownTypesProvider.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- DropTarget.cs
- PowerModeChangedEventArgs.cs
- TreeViewAutomationPeer.cs
- InstanceView.cs
- ToolboxCategoryItems.cs
- SHA1CryptoServiceProvider.cs
- AccessDataSource.cs
- SoapHeaderAttribute.cs
- ConfigurationConverterBase.cs
- InputChannel.cs
- ExpressionConverter.cs
- FixedSOMPageElement.cs
- _LocalDataStore.cs
- RuntimeConfigLKG.cs
- StaticResourceExtension.cs
- XmlText.cs
- SoapSchemaImporter.cs
- InProcStateClientManager.cs
- DecoderFallback.cs
- WebPartConnectVerb.cs
- TextRange.cs
- ScrollProperties.cs
- CaseCqlBlock.cs
- PersonalizationEntry.cs
- EditorPartCollection.cs
- VectorKeyFrameCollection.cs
- DynamicPropertyHolder.cs
- MediaElementAutomationPeer.cs
- ParameterElementCollection.cs
- RuleRefElement.cs
- PresentationSource.cs
- SystemIPv6InterfaceProperties.cs
- CustomBinding.cs
- ProfileModule.cs
- WizardDesigner.cs
- x509store.cs
- ContentFilePart.cs
- SafeNativeMethods.cs
- RootBrowserWindowAutomationPeer.cs
- typedescriptorpermissionattribute.cs
- FileCodeGroup.cs
- ListViewItem.cs
- CompareInfo.cs
- HttpListenerResponse.cs
- AssemblyHash.cs
- NamespaceList.cs
- RoutedPropertyChangedEventArgs.cs
- OracleSqlParser.cs
- RootAction.cs
- Stacktrace.cs
- PeerNearMe.cs
- AssemblyCollection.cs
- WebPartEditVerb.cs
- TraceXPathNavigator.cs
- BamlLocalizer.cs
- CompositeFontParser.cs