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 MustUnderstand: системой или приложением.

Via

Возвращает или задает адрес транспорта, который используется для отправки сообщений через клиент.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к