ClientOperation Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Используется для изменения или расширения поведения выполнения определенной операции контракта в объекте клиента или объекте канала клиента. Этот класс не может быть унаследован.
public ref class ClientOperation sealed
public ref class ClientOperation sealed : System::ServiceModel::Dispatcher::ClientOperationCompatBase
public sealed class ClientOperation
public sealed class ClientOperation : System.ServiceModel.Dispatcher.ClientOperationCompatBase
type ClientOperation = class
type ClientOperation = class
inherit ClientOperationCompatBase
Public NotInheritable Class ClientOperation
Public NotInheritable Class ClientOperation
Inherits ClientOperationCompatBase
- Наследование
-
ClientOperation
- Наследование
Примеры
В следующем примере кода показан System.ServiceModel.Description.IEndpointBehavior вставка пользовательского инспектора параметров в каждое ClientOperationClientRuntime.Operations свойство.
#region IEndpointBehavior Members
public void AddBindingParameters(
ServiceEndpoint endpoint, BindingParameterCollection bindingParameters
) { return; }
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
clientRuntime.MessageInspectors.Add(new Inspector());
foreach (ClientOperation op in clientRuntime.Operations)
op.ParameterInspectors.Add(new Inspector());
}
public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
{
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new Inspector());
foreach (DispatchOperation op in endpointDispatcher.DispatchRuntime.Operations)
op.ParameterInspectors.Add(new Inspector());
}
public void Validate(ServiceEndpoint endpoint){ return; }
#Region "IEndpointBehavior Members"
Public Sub AddBindingParameters(ByVal endpoint As ServiceEndpoint, ByVal bindingParameters _
As BindingParameterCollection) Implements IEndpointBehavior.AddBindingParameters
Return
End Sub
Public Sub ApplyClientBehavior(ByVal endpoint As ServiceEndpoint, ByVal clientRuntime As ClientRuntime) _
Implements IEndpointBehavior.ApplyClientBehavior
clientRuntime.MessageInspectors.Add(New Inspector())
For Each op As ClientOperation In clientRuntime.Operations
op.ParameterInspectors.Add(New Inspector())
Next op
End Sub
Public Sub ApplyDispatchBehavior(ByVal endpoint As ServiceEndpoint, ByVal endpointDispatcher As _
EndpointDispatcher) Implements IEndpointBehavior.ApplyDispatchBehavior
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(New Inspector())
For Each op As DispatchOperation In endpointDispatcher.DispatchRuntime.Operations
op.ParameterInspectors.Add(New Inspector())
Next op
End Sub
Public Sub Validate(ByVal endpoint As ServiceEndpoint) Implements IEndpointBehavior.Validate
Return
End Sub
Комментарии
Класс ClientOperation — это расположение для изменений во время выполнения клиента и точки вставки для пользовательских расширений, которые ограничены только одной операцией службы. (Чтобы изменить поведение во время выполнения клиента для всех сообщений в контракте, используйте ClientRuntime класс. )
Установите ClientOperation изменения с помощью пользовательского объекта поведения клиента либо типа IContractBehavior (для поиска определенной операции для изменения) или типа IOperationBehavior (который затем можно применить путем создания пользовательского атрибута).
Используйте свойство Operations, чтобы найти объект ClientOperation, представляющий определенную операцию службы.
Дополнительные сведения о клиентах и архитектуре клиента см. в статье Accessing Services Using a WCF Client and WCF Client Architecture. Дополнительные сведения о настройке среды выполнения клиента см. в разделе "Расширение клиентов". Дополнительные сведения об использовании поведения см. в разделе "Настройка и расширение среды выполнения с помощью поведения".
Следующие свойства позволяют вставлять пользовательские объекты или изменять поведение выполнения клиента:
Используйте свойство Formatter для вставки пользовательской реализации IClientMessageFormatter для операции или изменения текущего форматтера.
ParameterInspectors Используйте свойство, чтобы вставить пользовательскую IParameterInspector реализацию или изменить текущую.
SerializeRequest Используйте свойство для управления сериализируемой исходящим сообщением.
DeserializeReply Используйте свойство для управления десериализацией входящего сообщения.
Action Используйте свойство для доступа к действию WS-Addressing сообщения запроса и ReplyAction свойству для доступа к действию ответа.
BeginMethod Используйте и EndMethod укажите, какие клиентские методы связаны с асинхронной операцией.
FaultContractInfos Используйте свойство, чтобы получить коллекцию указанных типов, которые могут отображаться в ошибках SOAP в качестве типа сведений.
Используйте свойства IsInitiating и IsTerminating для управления тем, инициируется ли сеанс или отключается, соответственно, при вызове операции.
IsOneWay Используйте свойство, чтобы контролировать, ожидает ли клиент ответа перед завершением вызова.
Используйте свойство Parent, чтобы получить содержащий объект ClientRuntime.
Используйте свойство Name, чтобы получить имя операции.
SyncMethod Используйте свойство для управления тем, какой метод сопоставляется с операцией.
Конструкторы
| Имя | Описание |
|---|---|
| ClientOperation(ClientRuntime, String, String, String) |
Инициализирует новый экземпляр класса с помощью указанных ClientRuntimeзначений ClientOperation действия, имени, действия и ответа. |
| ClientOperation(ClientRuntime, String, String) |
Инициализирует новый экземпляр класса с помощью указанных ClientRuntimeзначенийClientOperation, имен и действий. |
Свойства
| Имя | Описание |
|---|---|
| Action |
Возвращает действие операции. |
| BeginMethod |
Возвращает или задает метод, связанный с асинхронной операцией. |
| ClientParameterInspectors |
Возвращает коллекцию объектов инспектора параметров, используемых для просмотра или изменения параметров до или последующего вызова клиента. |
| DeserializeReply |
Возвращает или задает значение, указывающее, используется ли Formatter значение свойства для десериализации сообщения ответа. |
| EndMethod |
Возвращает или задает метод, реализующий асинхронный метод конца для операции. |
| FaultContractInfos |
Возвращает коллекцию FaultContractInfo объектов, представляющих указанные ошибки SOAP для этой операции. |
| Formatter |
Возвращает или задает средство форматирования, сериализующее объекты в сообщения и десериализации сообщений в объекты. |
| IsInitiating |
Возвращает или задает значение, указывающее, может ли сеанс запускаться сообщением этой операции. |
| IsOneWay |
Возвращает или задает значение, указывающее, является ли операция односторонняя. |
| IsTerminating |
Возвращает или задает значение, указывающее, является ли эта операция последней в сеансе. |
| Name |
Возвращает имя операции. |
| ParameterInspectors |
Возвращает или задает коллекцию IParameterInspector объектов, которые могут проверять и изменять входящие и исходящие объекты для определенного метода клиента. |
| Parent |
Возвращает содержащий ClientRuntime объект. |
| ReplyAction |
Возвращает действие сообщения ответа для этой операции. |
| SerializeRequest |
Возвращает или задает значение, указывающее, сериализует ли Formatter объект исходящее сообщение. |
| SyncMethod |
Возвращает или задает метод, связанный с этой операцией. |
| TaskMethod |
Возвращает или задает метод, связанный с задачей. |
| TaskTResult |
Возвращает или задает тип результата метода, связанного с задачей. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |