You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,304 @@
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace System.ServiceModel.Dispatcher
|
||||
{
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Compat", Justification = "Compat is an accepted abbreviation")]
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public class ClientOperationCompatBase
|
||||
{
|
||||
internal ClientOperationCompatBase() { }
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
[Obsolete("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.", true)]
|
||||
public IList<IParameterInspector> ParameterInspectors
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.parameterInspectors;
|
||||
}
|
||||
}
|
||||
internal SynchronizedCollection<IParameterInspector> parameterInspectors;
|
||||
}
|
||||
|
||||
public sealed class ClientOperation : ClientOperationCompatBase
|
||||
{
|
||||
string action;
|
||||
SynchronizedCollection<FaultContractInfo> faultContractInfos;
|
||||
bool serializeRequest;
|
||||
bool deserializeReply;
|
||||
IClientMessageFormatter formatter;
|
||||
IClientFaultFormatter faultFormatter;
|
||||
bool isInitiating = true;
|
||||
bool isOneWay;
|
||||
bool isTerminating;
|
||||
bool isSessionOpenNotificationEnabled;
|
||||
string name;
|
||||
|
||||
ClientRuntime parent;
|
||||
string replyAction;
|
||||
MethodInfo beginMethod;
|
||||
MethodInfo endMethod;
|
||||
MethodInfo syncMethod;
|
||||
MethodInfo taskMethod;
|
||||
Type taskTResult;
|
||||
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<FaultContractInfo>();
|
||||
this.parameterInspectors = parent.NewBehaviorCollection<IParameterInspector>();
|
||||
}
|
||||
|
||||
public string Action
|
||||
{
|
||||
get { return this.action; }
|
||||
}
|
||||
|
||||
public SynchronizedCollection<FaultContractInfo> 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 ICollection<IParameterInspector> ClientParameterInspectors
|
||||
{
|
||||
get { return this.ParameterInspectors; }
|
||||
}
|
||||
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new SynchronizedCollection<IParameterInspector> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public MethodInfo TaskMethod
|
||||
{
|
||||
get { return this.taskMethod; }
|
||||
set
|
||||
{
|
||||
lock (this.parent.ThisLock)
|
||||
{
|
||||
this.parent.InvalidateRuntime();
|
||||
this.taskMethod = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Type TaskTResult
|
||||
{
|
||||
get { return this.taskTResult; }
|
||||
set
|
||||
{
|
||||
lock (this.parent.ThisLock)
|
||||
{
|
||||
this.parent.InvalidateRuntime();
|
||||
this.taskTResult = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal bool IsSessionOpenNotificationEnabled
|
||||
{
|
||||
get { return this.isSessionOpenNotificationEnabled; }
|
||||
set
|
||||
{
|
||||
lock (this.parent.ThisLock)
|
||||
{
|
||||
this.parent.InvalidateRuntime();
|
||||
this.isSessionOpenNotificationEnabled = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user