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
- ResourceReferenceExpression.cs
- TemplateControl.cs
- DataSourceSerializationException.cs
- ZipIOBlockManager.cs
- MatrixConverter.cs
- MimeTypeAttribute.cs
- FileStream.cs
- TextAction.cs
- GeneralTransform.cs
- ReliableSessionBindingElementImporter.cs
- ProcessingInstructionAction.cs
- ObjectDataSourceFilteringEventArgs.cs
- EventLogEntry.cs
- DrawingGroup.cs
- IdentityNotMappedException.cs
- TextContainerHelper.cs
- DataSourceSerializationException.cs
- Rect3DValueSerializer.cs
- MD5CryptoServiceProvider.cs
- WebPartEditVerb.cs
- RotateTransform.cs
- IImplicitResourceProvider.cs
- CodeDirectionExpression.cs
- SecurityPolicySection.cs
- RegisteredArrayDeclaration.cs
- ShapeTypeface.cs
- DataStreamFromComStream.cs
- DefaultValidator.cs
- Mutex.cs
- TaskFormBase.cs
- InternalConfigConfigurationFactory.cs
- WebPartEditVerb.cs
- login.cs
- LateBoundBitmapDecoder.cs
- ContentOperations.cs
- HostingEnvironment.cs
- Substitution.cs
- CustomAttributeFormatException.cs
- InputReportEventArgs.cs
- SqlEnums.cs
- DataPager.cs
- ComboBoxItem.cs
- MaterialCollection.cs
- FaultCallbackWrapper.cs
- FrameworkPropertyMetadata.cs
- ActivityTypeResolver.xaml.cs
- ContainerSelectorBehavior.cs
- BinaryObjectInfo.cs
- HttpHeaderCollection.cs
- CustomLineCap.cs
- AnonymousIdentificationModule.cs
- BindingCollection.cs
- TrimSurroundingWhitespaceAttribute.cs
- FastPropertyAccessor.cs
- DataGridViewComboBoxEditingControl.cs
- SafeSecurityHandles.cs
- LayoutInformation.cs
- InfoCardRSACryptoProvider.cs
- CommonXSendMessage.cs
- ShellProvider.cs
- ChangeDirector.cs
- CodeGeneratorAttribute.cs
- GridView.cs
- FixedBufferAttribute.cs
- RijndaelManaged.cs
- SqlProviderServices.cs
- SAPICategories.cs
- SafePEFileHandle.cs
- PersonalizationState.cs
- ValidatorUtils.cs
- TextTreeNode.cs
- RoutedCommand.cs
- DiscreteKeyFrames.cs
- XmlReflectionImporter.cs
- HandoffBehavior.cs
- WebPartsPersonalization.cs
- DataControlHelper.cs
- LowerCaseStringConverter.cs
- CollectionViewGroupInternal.cs
- WindowsBrush.cs
- AssemblyLoader.cs
- EntitySet.cs
- AppDomain.cs
- ModuleConfigurationInfo.cs
- HandleCollector.cs
- Ticks.cs
- log.cs
- DataControlPagerLinkButton.cs
- Command.cs
- PrimaryKeyTypeConverter.cs
- GraphicsPath.cs
- ItemCheckedEvent.cs
- OrCondition.cs
- ProtocolsConfigurationEntry.cs
- Pens.cs
- DataMemberConverter.cs
- NonVisualControlAttribute.cs
- Vector3DAnimationUsingKeyFrames.cs
- HandlerBase.cs
- DataRecordObjectView.cs