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.IEndpointBehavior вставляет System.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". Дополнительные сведения о клиентском программировании см. в разделе Accessing Services Using a WCF Client. Дополнительные сведения о настройке и их выполнении см. в разделе "Расширение клиентов".
Свойство 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 |
Получает клиентскую операцию для методов, не имеющих соответствующего объекта ClientOperation в коллекции Operations. |
ValidateMustUnderstand |
Возвращает или задает значение, определяющее, кем выполняется принудительная обработка заголовка SOAP |
Via |
Возвращает или задает адрес транспорта, который используется для отправки сообщений через клиент. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |