ClientRuntime Klasa

Definicja

Reprezentuje punkt wstawiania dla klas, które rozszerzają funkcjonalność obiektów klienta programu Windows Communication Foundation (WCF) dla wszystkich komunikatów obsługiwanych przez aplikację kliencką.

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
Dziedziczenie
ClientRuntime
Dziedziczenie

Przykłady

W poniższym przykładzie System.ServiceModel.Description.IEndpointBehavior kodu wstawia element System.ServiceModel.Dispatcher.IClientMessageInspector do środowiska uruchomieniowego klienta, dodając go do MessageInspectors właściwości .

#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

Poniższy przykład kodu przedstawia plik konfiguracji, który ładuje zachowanie punktu końcowego do punktu końcowego klienta.

  <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>

Uwagi

Obiekty klienta WCF, niezależnie od tego, czy rozszerzenie ClientBase<TChannel>IClientChannelprogramu , są używane przez aplikacje klienckie programu Windows Communication Foundation (WCF) do konwertowania wywołań metod na komunikaty wychodzące i konwertowania komunikatów przychodzących na obiekty i przekazywania ich do wyników metod klienta.

Klasa ClientRuntime jest punktem rozszerzalności, do którego można dodawać obiekty rozszerzeń, które przechwytywać komunikaty i rozszerzać zachowanie klienta we wszystkich operacjach. Przechwycenie obiektów może przetwarzać wszystkie komunikaty w określonym kontrakcie, przetwarzać tylko komunikaty dla określonych operacji, przeprowadzać inicjowanie kanału niestandardowego i implementować inne niestandardowe zachowanie aplikacji klienckiej. Aby zapoznać się z omówieniem architektury klienta, zobacz Architektura klienta WCF. Aby uzyskać więcej informacji na temat programowania klienta, zobacz Uzyskiwanie dostępu do usług przy użyciu klienta WCF. Aby uzyskać szczegółowe informacje o dostosowaniach i sposobie ich wykonywania, zobacz Rozszerzanie klientów.

  • Właściwość CallbackDispatchRuntime zwraca obiekt czasu wykonywania wysyłania dla operacji wywołania zwrotnego zainicjowanego przez usługę.

  • Właściwość OperationSelector akceptuje obiekt selektora operacji niestandardowych w celu kontrolowania routingu komunikatów klienta.

  • Właściwość ChannelInitializers umożliwia dodanie inicjatora kanału, który może sprawdzać lub modyfikować kanał klienta.

  • Właściwość InteractiveChannelInitializers może służyć do wyświetlania monitu wizualnego, aby umożliwić użytkownikowi wybranie poświadczeń przed otwarciem kanału.

  • Właściwość Operations pobiera kolekcję ClientOperation obiektów, do których można dodać niestandardowe przechwytywanie komunikatów, które zapewniają funkcjonalność specyficzną dla komunikatów tej operacji.

  • Właściwość ManualAddressing umożliwia aplikacji wyłączenie niektórych nagłówków automatycznego adresowania w celu bezpośredniego kontrolowania adresowania.

  • Właściwość MaxFaultSize umożliwia klientowi ograniczenie rozmiaru komunikatów o błędach akceptowanych przez klienta.

  • Właściwość MessageInspectors pobiera kolekcję obiektów, do których można dodać niestandardowe przechwytniki komunikatów IClientMessageInspector dla wszystkich komunikatów podróżujących przez klienta.

  • Właściwość UnhandledClientOperation zwraca operację, do której przekazywane są nieoczekiwane komunikaty.

  • Właściwość ValidateMustUnderstand informuje system, czy powinien potwierdzić, że nagłówki SOAP oznaczone jako MustUnderstand w rzeczywistości zostały zrozumiałe.

  • Właściwość Via określa wartość miejsca docelowego komunikatu na poziomie transportu, aby wspierać pośredników i inne scenariusze.

Ponadto istnieje wiele innych właściwości, które pobierają informacje o kontrakcie klienta:

Jeśli klient jest klientem dwukierunkowym, następujące właściwości również pobierają typ wywołania zwrotnego klienta i środowisko uruchomieniowe:

Właściwości

CallbackClientType

Pobiera lub ustawia typ kontraktu wywołania zwrotnego skojarzonego z klientem dwukierunkowym.

CallbackDispatchRuntime

Pobiera czas wykonywania wysyłania, który wysyła operacje inicjowane przez usługę.

ChannelInitializers

Pobiera kolekcję obiektów inicjatora kanału używanych do dostosowywania kanału skojarzonego z klientem.

ClientMessageInspectors

Pobiera kolekcję obiektów inspektora komunikatów używanych do wyświetlania lub modyfikowania komunikatów określonej operacji usługi.

ClientOperations

Pobiera kolekcję obiektów operacji klienta używanych do dołączania obiektów rozszerzeń, które sprawdzają lub modyfikują komunikaty i zachowanie określonej operacji usługi.

ContractClientType

Pobiera lub ustawia typ kontraktu skojarzonego z klientem.

ContractName

Pobiera nazwę kontraktu skojarzonego z klientem.

ContractNamespace

Pobiera przestrzeń nazw kontraktu skojarzonego z klientem.

DispatchRuntime

Reprezentuje punkt wstawiania dla klas, które rozszerzają funkcjonalność obiektów klienta programu Windows Communication Foundation (WCF) dla wszystkich komunikatów obsługiwanych przez aplikację kliencką.

InteractiveChannelInitializers

Pobiera kolekcję inicjatora kanału interaktywnego.

ManualAddressing

Pobiera lub ustawia wartość wskazującą, czy klient dodaje nagłówki adresowania do komunikatów o odpowiedzi żądania.

MaxFaultSize

Pobiera lub ustawia maksymalny rozmiar błędu.

MessageInspectors

Pobiera kolekcję implementacji inspektora komunikatów dla klienta.

MessageVersionNoneFaultsEnabled

Pobiera lub ustawia wartość wskazującą, czy właściwość MessageVersionNoneFaultsEnabled jest ustawiona.

Operations

Pobiera kolekcję operacji klienta dla klienta.

OperationSelector

Pobiera lub ustawia implementację IClientOperationSelector , która może służyć do wybrania elementu ClientOperation.

UnhandledClientOperation

Pobiera operację klienta dla metod, które nie mają odpowiedniego ClientOperation elementu w kolekcji Operations .

ValidateMustUnderstand

Pobiera lub ustawia wartość określającą, czy system, czy aplikacja wymusza przetwarzanie nagłówka PROTOKOŁU SOAP MustUnderstand .

Via

Pobiera lub ustawia adres transportu używany do wysyłania komunikatów za pośrednictwem klienta.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy