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
- FusionWrap.cs
- AsyncInvokeContext.cs
- SqlEnums.cs
- infer.cs
- StreamInfo.cs
- CompiledELinqQueryState.cs
- Monitor.cs
- ResourceDescriptionAttribute.cs
- TypeBrowser.xaml.cs
- XPathSelectionIterator.cs
- MetadataArtifactLoader.cs
- ColorAnimationBase.cs
- EnumerableValidator.cs
- ActivityCompletionCallbackWrapper.cs
- CapabilitiesRule.cs
- GeneratedCodeAttribute.cs
- BaseResourcesBuildProvider.cs
- XmlKeywords.cs
- ExecutionEngineException.cs
- SelfSignedCertificate.cs
- Subtree.cs
- ErrorLog.cs
- AQNBuilder.cs
- SoapObjectWriter.cs
- MobileFormsAuthentication.cs
- ErrorTolerantObjectWriter.cs
- ReservationNotFoundException.cs
- StateInitializationDesigner.cs
- Int16Animation.cs
- TimeSpanMinutesConverter.cs
- DesignerContextDescriptor.cs
- ImpersonateTokenRef.cs
- HttpVersion.cs
- Axis.cs
- Int16.cs
- _Semaphore.cs
- WebConfigurationHost.cs
- BackgroundWorker.cs
- WebPartMenuStyle.cs
- ConsumerConnectionPointCollection.cs
- OutgoingWebResponseContext.cs
- ScriptRef.cs
- WinCategoryAttribute.cs
- FontStyle.cs
- HttpNamespaceReservationInstallComponent.cs
- CapabilitiesState.cs
- WebPartZoneDesigner.cs
- NullableLongAverageAggregationOperator.cs
- GenericTypeParameterBuilder.cs
- baseaxisquery.cs
- DateRangeEvent.cs
- ProviderUtil.cs
- CharStorage.cs
- XmlAttributeProperties.cs
- WindowsNonControl.cs
- SafeViewOfFileHandle.cs
- PeerNameRecord.cs
- UnionQueryOperator.cs
- CompilerResults.cs
- InkPresenter.cs
- ExpressionContext.cs
- MessageLoggingElement.cs
- TypefaceCollection.cs
- EventlogProvider.cs
- OpenTypeCommon.cs
- DecoderBestFitFallback.cs
- DataGridCheckBoxColumn.cs
- TagMapCollection.cs
- HtmlImage.cs
- MethodImplAttribute.cs
- basecomparevalidator.cs
- GridViewColumn.cs
- SortableBindingList.cs
- SymbolType.cs
- AuthorizationSection.cs
- DrawingBrush.cs
- WSFederationHttpSecurityMode.cs
- ModelItemKeyValuePair.cs
- PointLight.cs
- OracleParameter.cs
- ItemCheckEvent.cs
- DataSourceHelper.cs
- TabletDevice.cs
- EmbeddedMailObjectsCollection.cs
- CodeMethodReturnStatement.cs
- HttpCacheParams.cs
- DigestTraceRecordHelper.cs
- DefaultClaimSet.cs
- VariableQuery.cs
- SecurityTokenRequirement.cs
- XDRSchema.cs
- Transform.cs
- IntSecurity.cs
- ObjectDataSourceFilteringEventArgs.cs
- TdsValueSetter.cs
- PtsHost.cs
- DeflateEmulationStream.cs
- coordinatorscratchpad.cs
- DataGridViewRowPrePaintEventArgs.cs
- ColumnHeader.cs