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
- BindableTemplateBuilder.cs
- HwndSubclass.cs
- ObjectToIdCache.cs
- RuleRefElement.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- CommandConverter.cs
- CompileXomlTask.cs
- wgx_render.cs
- SspiNegotiationTokenAuthenticator.cs
- RowToParametersTransformer.cs
- SectionXmlInfo.cs
- WebContext.cs
- BigInt.cs
- HiddenField.cs
- ExpandSegmentCollection.cs
- WebPartVerb.cs
- MasterPageCodeDomTreeGenerator.cs
- ImageFormatConverter.cs
- SubpageParagraph.cs
- BitmapEncoder.cs
- DBCSCodePageEncoding.cs
- XmlSchemaInclude.cs
- Light.cs
- FileLogRecordHeader.cs
- CodeIdentifiers.cs
- DataGridViewColumn.cs
- RenderCapability.cs
- BackStopAuthenticationModule.cs
- MarkupExtensionSerializer.cs
- DataColumnMappingCollection.cs
- SourceInterpreter.cs
- DesignerVerb.cs
- SqlConnectionStringBuilder.cs
- SqlStatistics.cs
- LayoutUtils.cs
- PerspectiveCamera.cs
- HtmlFormAdapter.cs
- CommentAction.cs
- Guid.cs
- SiteMapNode.cs
- TextFindEngine.cs
- TableParaClient.cs
- MemberMemberBinding.cs
- HttpHostedTransportConfiguration.cs
- TableStyle.cs
- ValueOfAction.cs
- UrlMappingsSection.cs
- LinkGrep.cs
- VectorCollectionValueSerializer.cs
- HtmlEmptyTagControlBuilder.cs
- ObjectDataSourceEventArgs.cs
- KeyValueConfigurationElement.cs
- ToolStripDropDownDesigner.cs
- Identifier.cs
- SelectedGridItemChangedEvent.cs
- CrossAppDomainChannel.cs
- StyleCollection.cs
- ErrorReporting.cs
- RemotingConfiguration.cs
- EmptyReadOnlyDictionaryInternal.cs
- ServicesUtilities.cs
- FloaterParaClient.cs
- DecoderExceptionFallback.cs
- FontFamily.cs
- Publisher.cs
- PixelFormats.cs
- Label.cs
- SmiGettersStream.cs
- WindowsFormsSynchronizationContext.cs
- Math.cs
- Matrix3DValueSerializer.cs
- CreateRefExpr.cs
- BaseDataBoundControl.cs
- commandenforcer.cs
- BitmapEffectInput.cs
- ErrorsHelper.cs
- SqlUserDefinedTypeAttribute.cs
- SmiRecordBuffer.cs
- ManipulationVelocities.cs
- CodeTypeReference.cs
- ExpressionEditorAttribute.cs
- CompositionDesigner.cs
- TdsParserSafeHandles.cs
- UIElement3DAutomationPeer.cs
- Shape.cs
- Command.cs
- RoleManagerSection.cs
- CodeDomLocalizationProvider.cs
- RefreshPropertiesAttribute.cs
- DataErrorValidationRule.cs
- RequestCacheEntry.cs
- CodeIndexerExpression.cs
- XmlBufferReader.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- FeatureSupport.cs
- TabControl.cs
- ToolStripContainerActionList.cs
- Mappings.cs
- XmlILTrace.cs
- HostVisual.cs