ClientRuntime Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |
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 |
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) |