Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / DispatchOperation.cs / 3 / DispatchOperation.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Dispatcher
{
using System;
using System.ServiceModel;
using System.Collections.Generic;
using System.Security.Principal;
public sealed class DispatchOperation
{
string action;
SynchronizedCollection callContextInitializers;
SynchronizedCollection faultContractInfos;
IDispatchMessageFormatter formatter;
IDispatchFaultFormatter faultFormatter;
ImpersonationOption impersonation;
IOperationInvoker invoker;
bool isTerminating;
string name;
SynchronizedCollection parameterInspectors;
DispatchRuntime parent;
bool releaseInstanceAfterCall;
bool releaseInstanceBeforeCall;
string replyAction;
bool transactionAutoComplete;
bool transactionRequired;
bool deserializeRequest = true;
bool serializeReply = true;
bool isOneWay;
bool autoDisposeParameters = true;
bool hasNoDisposableParameters;
bool isFaultFormatterSetExplicit = false;
public DispatchOperation(DispatchRuntime parent, string name, string action)
{
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.impersonation = OperationBehaviorAttribute.DefaultImpersonationOption;
this.callContextInitializers = parent.NewBehaviorCollection();
this.faultContractInfos = parent.NewBehaviorCollection();
this.parameterInspectors = parent.NewBehaviorCollection();
this.isOneWay = true;
}
public DispatchOperation(DispatchRuntime parent, string name, string action, string replyAction)
: this(parent, name, action)
{
this.replyAction = replyAction;
this.isOneWay = false;
}
public bool IsOneWay
{
get { return this.isOneWay; }
}
public string Action
{
get { return this.action; }
}
public SynchronizedCollection CallContextInitializers
{
get { return this.callContextInitializers; }
}
public SynchronizedCollection FaultContractInfos
{
get { return this.faultContractInfos; }
}
public bool AutoDisposeParameters
{
get { return this.autoDisposeParameters; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.autoDisposeParameters = value;
}
}
}
public IDispatchMessageFormatter Formatter
{
get { return this.formatter; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.formatter = value;
}
}
}
internal IDispatchFaultFormatter 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;
}
}
public ImpersonationOption Impersonation
{
get { return this.impersonation; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.impersonation = value;
}
}
}
internal bool HasNoDisposableParameters
{
get { return this.hasNoDisposableParameters; }
set { this.hasNoDisposableParameters = value; }
}
internal IDispatchMessageFormatter InternalFormatter
{
get { return this.formatter; }
set { this.formatter = value; }
}
internal IOperationInvoker InternalInvoker
{
get { return this.invoker; }
set { this.invoker = value; }
}
public IOperationInvoker Invoker
{
get { return this.invoker; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.invoker = 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 DispatchRuntime Parent
{
get { return this.parent; }
}
public bool ReleaseInstanceAfterCall
{
get { return this.releaseInstanceAfterCall; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.releaseInstanceAfterCall = value;
}
}
}
public bool ReleaseInstanceBeforeCall
{
get { return this.releaseInstanceBeforeCall; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.releaseInstanceBeforeCall = value;
}
}
}
public string ReplyAction
{
get { return this.replyAction; }
}
public bool DeserializeRequest
{
get { return this.deserializeRequest; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.deserializeRequest = value;
}
}
}
public bool SerializeReply
{
get { return this.serializeReply; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.serializeReply = value;
}
}
}
public bool TransactionAutoComplete
{
get { return this.transactionAutoComplete; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.transactionAutoComplete = value;
}
}
}
public bool TransactionRequired
{
get { return this.transactionRequired; }
set
{
lock (this.parent.ThisLock)
{
this.parent.InvalidateRuntime();
this.transactionRequired = 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
- CorruptingExceptionCommon.cs
- CallContext.cs
- HandleCollector.cs
- DeploymentExceptionMapper.cs
- ProjectedWrapper.cs
- DPAPIProtectedConfigurationProvider.cs
- CultureInfoConverter.cs
- QueryResponse.cs
- GridViewDeleteEventArgs.cs
- BlurBitmapEffect.cs
- GlobalProxySelection.cs
- EncodingDataItem.cs
- UIElementAutomationPeer.cs
- TemplateXamlParser.cs
- cookiecollection.cs
- LinqDataSourceUpdateEventArgs.cs
- ScriptingJsonSerializationSection.cs
- JavascriptCallbackResponseProperty.cs
- Math.cs
- AccessibleObject.cs
- DockAndAnchorLayout.cs
- UInt32.cs
- RawStylusSystemGestureInputReport.cs
- DCSafeHandle.cs
- JavaScriptObjectDeserializer.cs
- OdbcFactory.cs
- SelectionRangeConverter.cs
- XmlTextReaderImpl.cs
- NullableDoubleMinMaxAggregationOperator.cs
- OciEnlistContext.cs
- DPCustomTypeDescriptor.cs
- TimeSpan.cs
- CheckBoxFlatAdapter.cs
- Color.cs
- Enlistment.cs
- Debug.cs
- Triplet.cs
- RightsController.cs
- WebServiceHandler.cs
- FixedDocumentPaginator.cs
- FileClassifier.cs
- ChainedAsyncResult.cs
- ExceptionHandlerDesigner.cs
- DynamicValueConverter.cs
- HostVisual.cs
- Compensate.cs
- SymbolUsageManager.cs
- NetCodeGroup.cs
- RemoteWebConfigurationHost.cs
- ContextStaticAttribute.cs
- DisplayInformation.cs
- XPathException.cs
- CreatingCookieEventArgs.cs
- SapiAttributeParser.cs
- Context.cs
- RunClient.cs
- EventPrivateKey.cs
- ContextMenuService.cs
- Matrix3D.cs
- CapabilitiesPattern.cs
- WindowsFormsSectionHandler.cs
- Utilities.cs
- SubMenuStyleCollection.cs
- Utils.cs
- DefaultTextStore.cs
- PositiveTimeSpanValidatorAttribute.cs
- DataPointer.cs
- RelatedImageListAttribute.cs
- StreamWithDictionary.cs
- DivideByZeroException.cs
- DynamicDocumentPaginator.cs
- ColumnMapCopier.cs
- DbConnectionOptions.cs
- UiaCoreProviderApi.cs
- TextEditor.cs
- ToolStripCodeDomSerializer.cs
- LineUtil.cs
- HtmlSelectionListAdapter.cs
- XPathParser.cs
- SecureUICommand.cs
- StringFunctions.cs
- ContextMenuAutomationPeer.cs
- SamlEvidence.cs
- CollectionChangeEventArgs.cs
- SafeRightsManagementHandle.cs
- FixedPageProcessor.cs
- _BaseOverlappedAsyncResult.cs
- EventLogPermissionAttribute.cs
- BindingExpressionUncommonField.cs
- UserControl.cs
- HttpVersion.cs
- FrameworkTemplate.cs
- RepeaterItemCollection.cs
- IPAddressCollection.cs
- PasswordRecoveryAutoFormat.cs
- SoapServerMethod.cs
- ArcSegment.cs
- codemethodreferenceexpression.cs
- OleDbCommandBuilder.cs
- SiteOfOriginPart.cs