Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / ClientOperation.cs / 3 / ClientOperation.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Dispatcher
{
using System;
using System.Reflection;
using System.Collections.Generic;
public sealed class ClientOperation
{
string action;
SynchronizedCollection faultContractInfos;
bool serializeRequest;
bool deserializeReply;
IClientMessageFormatter formatter;
IClientFaultFormatter faultFormatter;
bool isInitiating = true;
bool isOneWay;
bool isTerminating;
string name;
SynchronizedCollection parameterInspectors;
ClientRuntime parent;
string replyAction;
MethodInfo beginMethod;
MethodInfo endMethod;
MethodInfo syncMethod;
bool isFaultFormatterSetExplicit = false;
public ClientOperation(ClientRuntime parent, string name, string action)
: this(parent, name, action, null)
{
}
public ClientOperation(ClientRuntime parent, string name, string action, string replyAction)
{
if (parent == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("parent");
if (name == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name");
this.parent = parent;
this.name = name;
this.action = action;
this.replyAction = replyAction;
this.faultContractInfos = parent.NewBehaviorCollection();
this.parameterInspectors = parent.NewBehaviorCollection();
}
public string Action
{
get { return this.action; }
}
public SynchronizedCollection FaultContractInfos
{
get { return this.faultContractInfos; }
}
public MethodInfo BeginMethod
{
get { return this.beginMethod; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.beginMethod = value;
}
}
}
public MethodInfo EndMethod
{
get { return this.endMethod; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.endMethod = value;
}
}
}
public MethodInfo SyncMethod
{
get { return this.syncMethod; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.syncMethod = value;
}
}
}
public IClientMessageFormatter Formatter
{
get { return this.formatter; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.formatter = value;
}
}
}
internal IClientFaultFormatter FaultFormatter
{
get
{
if (this.faultFormatter == null)
{
this.faultFormatter = new DataContractSerializerFaultFormatter(this.faultContractInfos);
}
return this.faultFormatter;
}
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.faultFormatter = value;
this.isFaultFormatterSetExplicit = true;
}
}
}
internal bool IsFaultFormatterSetExplicit
{
get
{
return this.isFaultFormatterSetExplicit;
}
}
internal IClientMessageFormatter InternalFormatter
{
get { return this.formatter; }
set { this.formatter = value; }
}
public bool IsInitiating
{
get { return this.isInitiating; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.isInitiating = value;
}
}
}
public bool IsOneWay
{
get { return this.isOneWay; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.isOneWay = value;
}
}
}
public bool IsTerminating
{
get { return this.isTerminating; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.isTerminating = value;
}
}
}
public string Name
{
get { return this.name; }
}
public SynchronizedCollection ParameterInspectors
{
get { return this.parameterInspectors; }
}
public ClientRuntime Parent
{
get { return this.parent; }
}
public string ReplyAction
{
get { return this.replyAction; }
}
public bool SerializeRequest
{
get { return this.serializeRequest; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.serializeRequest = value;
}
}
}
public bool DeserializeReply
{
get { return this.deserializeReply; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.deserializeReply = value;
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SByte.cs
- XmlSchemaExternal.cs
- CallInfo.cs
- MimeReturn.cs
- ElementHost.cs
- NetworkAddressChange.cs
- Set.cs
- ChangePassword.cs
- PasswordPropertyTextAttribute.cs
- RelatedCurrencyManager.cs
- TemplateKeyConverter.cs
- PropertyGridCommands.cs
- FileUtil.cs
- Viewport3DAutomationPeer.cs
- StringAnimationUsingKeyFrames.cs
- FrugalMap.cs
- DispatchChannelSink.cs
- KeyNotFoundException.cs
- CachedBitmap.cs
- TextEffect.cs
- XmlDictionaryWriter.cs
- ObjectQuery.cs
- XmlSchemaValidator.cs
- UdpSocketReceiveManager.cs
- ResetableIterator.cs
- HtmlInputCheckBox.cs
- TextSelectionProcessor.cs
- PickBranchDesigner.xaml.cs
- ColumnMapProcessor.cs
- DesignerEventService.cs
- HttpResponse.cs
- TimelineGroup.cs
- CompositeClientFormatter.cs
- ToolboxControl.cs
- GC.cs
- VisualProxy.cs
- ContentDesigner.cs
- UIElementParagraph.cs
- propertyentry.cs
- SafeTimerHandle.cs
- BoundField.cs
- ImageFormatConverter.cs
- SessionEndingCancelEventArgs.cs
- InputLanguageEventArgs.cs
- LayoutDump.cs
- TextEditorSpelling.cs
- SqlDataReader.cs
- RootBrowserWindow.cs
- EdmTypeAttribute.cs
- MatrixStack.cs
- ManagedFilter.cs
- WrapPanel.cs
- OracleNumber.cs
- ToolStripGripRenderEventArgs.cs
- PathParser.cs
- DesignTimeDataBinding.cs
- NameNode.cs
- ConditionalDesigner.cs
- QilList.cs
- CombinedTcpChannel.cs
- DeviceSpecific.cs
- Rule.cs
- TimeSpanParse.cs
- NonParentingControl.cs
- SortAction.cs
- ResourceIDHelper.cs
- MDIControlStrip.cs
- XmlQueryTypeFactory.cs
- HttpRequest.cs
- DataControlImageButton.cs
- DisplayInformation.cs
- SignedInfo.cs
- Scene3D.cs
- DbConnectionPoolCounters.cs
- AudioStateChangedEventArgs.cs
- AutomationEvent.cs
- HtmlElementEventArgs.cs
- RecordConverter.cs
- MethodImplAttribute.cs
- DataGridTableCollection.cs
- DropSource.cs
- IIS7UserPrincipal.cs
- SimpleBitVector32.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- MimeBasePart.cs
- ContractHandle.cs
- UdpMessageProperty.cs
- CodeBinaryOperatorExpression.cs
- ViewManager.cs
- ContainsRowNumberChecker.cs
- HashRepartitionStream.cs
- PreservationFileWriter.cs
- EndOfStreamException.cs
- RouteTable.cs
- WebHeaderCollection.cs
- MobileErrorInfo.cs
- RawStylusInput.cs
- GridPatternIdentifiers.cs
- XD.cs
- ProfileBuildProvider.cs