ClientRuntime Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет точку вставки для классов, расширяющих функциональные возможности клиентских объектов Windows Communication Foundation (WCF) для всех сообщений, обрабатываемых клиентским приложением.
public ref class ClientRuntime sealed
public ref class ClientRuntime sealed : System::ServiceModel::Dispatcher::ClientRuntimeCompatBase
public sealed class ClientRuntime
public sealed class ClientRuntime : System.ServiceModel.Dispatcher.ClientRuntimeCompatBase
type ClientRuntime = class
type ClientRuntime = class
inherit ClientRuntimeCompatBase
Public NotInheritable Class ClientRuntime
Public NotInheritable Class ClientRuntime
Inherits ClientRuntimeCompatBase
- Наследование
-
ClientRuntime
- Наследование
Примеры
В следующем примере кода вставляется System.ServiceModel.Description.IEndpointBehaviorSystem.ServiceModel.Dispatcher.IClientMessageInspector в среду выполнения клиента, добавляя его в MessageInspectors свойство.
#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
В следующем примере кода показан файл конфигурации, который загружает поведение конечной точки в конечную точку клиента.
<client>
<endpoint
address="http://localhost:8080/SampleService"
behaviorConfiguration="clientInspectorsAdded"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_ISampleService"
contract="ISampleService"
name="WSHttpBinding_ISampleService"
>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="clientInspectorsAdded">
<clientInterceptors />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add
name="clientInterceptors"
type="Microsoft.WCF.Documentation.InspectorInserter, HostApplication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
/>
</behaviorExtensions>
</extensions>
Комментарии
Клиентские объекты WCF, будь то расширение ClientBase<TChannel> или IClientChannelиз них, используются клиентскими приложениями Windows Communication Foundation (WCF) для преобразования вызовов методов в исходящие сообщения и преобразования входящих сообщений в объекты и передачи их в результаты клиентских методов.
Класс ClientRuntime — это точка расширяемости, в которую можно добавить объекты расширения, которые перехватывают сообщения и расширяют поведение клиента во всех операциях. Объекты перехвата могут обрабатывать все сообщения в определенном контракте, обрабатывать только сообщения для определенных операций, выполнять инициализацию пользовательского канала и реализовывать другое поведение пользовательского клиентского приложения. Общие сведения об архитектуре клиента см. в разделе " Архитектура клиента WCF". Дополнительные сведения о программировании клиента см. в разделе "Доступ к службам с помощью клиента WCF". Дополнительные сведения о настройках и их выполнении см. в разделе "Расширение клиентов".
Свойство CallbackDispatchRuntime возвращает объект времени выполнения диспетчера для операций обратного вызова, инициированных службой.
Свойство OperationSelector принимает объект пользовательского селектора операций для управления маршрутизацией клиентских сообщений.
Свойство ChannelInitializers включает добавление инициализатора канала, который может проверять или изменять клиентский канал.
Это InteractiveChannelInitializers свойство можно использовать для отображения визуального запроса, чтобы пользователь мог выбрать учетные данные перед открытием канала.
Свойство Operations получает коллекцию ClientOperation объектов, к которым можно добавить пользовательские перехватчики сообщений, которые предоставляют функциональные возможности, относящиеся к сообщениям этой операции.
Свойство ManualAddressing позволяет приложению отключить некоторые заголовки автоматической адресации для прямого управления адресациями.
Свойство MaxFaultSize позволяет клиенту ограничить размер сообщений об ошибках, которые принимает клиент.
Свойство MessageInspectors получает коллекцию объектов, к которым можно добавлять пользовательские перехватчики сообщений для всех сообщений, передаваемых IClientMessageInspector через клиент.
Свойство UnhandledClientOperation возвращает операцию, в которую передаются непредвиденные сообщения.
Свойство ValidateMustUnderstand сообщает системе, следует ли подтвердить, что заголовки SOAP помечены как
MustUnderstandпонятные.Свойство Via задает значение назначения сообщения на уровне транспорта для поддержки посредников и других сценариев.
Кроме того, существует ряд других свойств, которые извлекают сведения о контракте клиента:
Если клиент является дуплексным клиентом, следующие свойства также извлекают тип обратного вызова клиента и среду выполнения:
Свойства
| Имя | Описание |
|---|---|
| CallbackClientType |
Возвращает или задает тип контракта обратного вызова, связанного с дуплексным клиентом. |
| CallbackDispatchRuntime |
Возвращает время выполнения диспетчера, которое отправляет операции, инициированные службой. |
| ChannelInitializers |
Возвращает коллекцию объектов инициализатора каналов, используемых для настройки канала, связанного с клиентом. |
| ClientMessageInspectors |
Возвращает коллекцию объектов инспектора сообщений, используемых для просмотра или изменения сообщений определенной операции службы. |
| ClientOperations |
Возвращает коллекцию объектов операций клиента, используемых для присоединения объектов расширения, которые проверяют или изменяют сообщения и поведение определенной операции службы. |
| ContractClientType |
Возвращает или задает тип контракта, связанного с клиентом. |
| ContractName |
Возвращает имя контракта, связанного с клиентом. |
| ContractNamespace |
Возвращает пространство имен контракта, связанного с клиентом. |
| InteractiveChannelInitializers |
Возвращает коллекцию инициализатора интерактивного канала. |
| ManualAddressing |
Возвращает или задает значение, указывающее, добавляет ли клиент адресация заголовков в сообщения с запросом и ответом. |
| MaxFaultSize |
Возвращает или задает максимальный размер сбоя. |
| MessageInspectors |
Возвращает коллекцию реализаций инспектора сообщений для клиента. |
| MessageVersionNoneFaultsEnabled |
Возвращает или задает значение, указывающее, задано ли свойство MessageVersionNoneFaultsEnabled. |
| Operations |
Возвращает коллекцию клиентских операций для клиента. |
| OperationSelector |
Возвращает или задает реализацию IClientOperationSelector , которую можно использовать для выбора ClientOperation. |
| UnhandledClientOperation |
Возвращает операцию клиента для методов, которые не имеют соответствующего ClientOperationOperations в коллекции. |
| ValidateMustUnderstand |
Возвращает или задает значение, указывающее, применяет ли система или приложение обработку заголовков SOAP |
| Via |
Возвращает или задает адрес транспорта, используемый для отправки сообщений через клиент. |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |