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
- WebContext.cs
- DefaultAssemblyResolver.cs
- EqualityComparer.cs
- ListViewItemSelectionChangedEvent.cs
- SymbolEqualComparer.cs
- TickBar.cs
- UnsafeNativeMethodsTablet.cs
- Int16Animation.cs
- WCFModelStrings.Designer.cs
- DefaultShape.cs
- ScaleTransform.cs
- TypedDataSourceCodeGenerator.cs
- XmlSchemaSimpleType.cs
- OdbcCommandBuilder.cs
- FlowLayoutSettings.cs
- WmlControlAdapter.cs
- HashSet.cs
- XmlResolver.cs
- DeclaredTypeElement.cs
- RoleGroupCollection.cs
- FixedDocument.cs
- RelationHandler.cs
- X509ChainElement.cs
- AttributeExtensions.cs
- DBConnection.cs
- NestPullup.cs
- ConsumerConnectionPointCollection.cs
- GeneralTransform.cs
- PerspectiveCamera.cs
- FormatSettings.cs
- _ChunkParse.cs
- RoleService.cs
- InstanceLockedException.cs
- TypePresenter.xaml.cs
- FontFamilyValueSerializer.cs
- SamlAdvice.cs
- ValueUtilsSmi.cs
- DataExpression.cs
- __FastResourceComparer.cs
- DefaultAuthorizationContext.cs
- InvalidOleVariantTypeException.cs
- FunctionCommandText.cs
- Bidi.cs
- DataGridCellEditEndingEventArgs.cs
- AdCreatedEventArgs.cs
- CheckBoxRenderer.cs
- FileDialog_Vista.cs
- ImportContext.cs
- CallInfo.cs
- NameNode.cs
- LongValidatorAttribute.cs
- DefaultPrintController.cs
- KeyValuePairs.cs
- ContextMenu.cs
- Pointer.cs
- BreakRecordTable.cs
- String.cs
- SplitterCancelEvent.cs
- ProcessHostMapPath.cs
- MemoryStream.cs
- TreeIterators.cs
- WebAdminConfigurationHelper.cs
- ScalarConstant.cs
- TabControlEvent.cs
- FileLogRecord.cs
- RepeaterItemCollection.cs
- TextRangeSerialization.cs
- DesigntimeLicenseContext.cs
- GeneralTransform2DTo3D.cs
- RuntimeWrappedException.cs
- SafePEFileHandle.cs
- DataListItem.cs
- Adorner.cs
- LoginView.cs
- MSAANativeProvider.cs
- IriParsingElement.cs
- UpdateTracker.cs
- NullableBoolConverter.cs
- DefaultValueAttribute.cs
- ListViewDeletedEventArgs.cs
- ClaimSet.cs
- DependencyPropertyDescriptor.cs
- PackagePart.cs
- PermissionSetTriple.cs
- OracleException.cs
- StatusBarDrawItemEvent.cs
- BufferedStream.cs
- QilVisitor.cs
- ProjectionRewriter.cs
- sqlstateclientmanager.cs
- StorageTypeMapping.cs
- WebConfigurationManager.cs
- DataContractSerializerSection.cs
- ErrorStyle.cs
- ListBoxAutomationPeer.cs
- ContravarianceAdapter.cs
- ToolZone.cs
- FrameworkTemplate.cs
- HttpHandlersSection.cs
- UriWriter.cs