ChannelFactory<TChannel> 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.
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi.
generic <typename TChannel>
public ref class ChannelFactory : System::ServiceModel::ChannelFactory, System::ServiceModel::Channels::IChannelFactory<TChannel>
public class ChannelFactory<TChannel> : System.ServiceModel.ChannelFactory, System.ServiceModel.Channels.IChannelFactory<TChannel>
type ChannelFactory<'Channel> = class
inherit ChannelFactory
interface IChannelFactory<'Channel>
interface IChannelFactory
interface ICommunicationObject
type ChannelFactory<'Channel> = class
inherit ChannelFactory
interface IChannelFactory
interface ICommunicationObject
interface IChannelFactory<'Channel>
Public Class ChannelFactory(Of TChannel)
Inherits ChannelFactory
Implements IChannelFactory(Of TChannel)
Parametry typu
- TChannel
Typ kanału produkowanego przez fabrykę kanałów. Ten typ musi mieć wartość IOutputChannel lub IRequestChannel.
- Dziedziczenie
- Pochodne
- Implementuje
Przykłady
Poniższy przykład pokazuje, jak utworzyć fabrykę kanałów i używać jej do tworzenia kanałów i zarządzania nimi.
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:8000/ChannelApp");
ChannelFactory<IRequestChannel> factory =
new ChannelFactory<IRequestChannel>(binding, address);
IRequestChannel channel = factory.CreateChannel();
channel.Open();
Message request = Message.CreateMessage(MessageVersion.Soap11, "hello");
Message reply = channel.Request(request);
Console.Out.WriteLine(reply.Headers.Action);
reply.Close();
channel.Close();
factory.Close();
}
Poniższy przykład kodu pokazuje, jak wstawić programowo zachowanie klienta przed utworzeniem obiektu kanału przez fabrykę.
public class Client
{
public static void Main()
{
try
{
// Picks up configuration from the config file.
ChannelFactory<ISampleServiceChannel> factory
= new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");
// Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());
ISampleServiceChannel wcfClientChannel = factory.CreateChannel();
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClientChannel.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.Read();
}
catch (FaultException<SampleFault> fault)
{
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
Console.Read();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.Read();
}
}
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub
Uwagi
Ta klasa ogólna umożliwia bardziej zaawansowane scenariusze, w których istnieje wymóg utworzenia fabryki kanałów, która może służyć do tworzenia więcej niż jednego typu kanału.
Podczas programowego dodawania zachowań zachowanie jest dodawane do odpowiedniej Behaviors
właściwości ChannelFactory przed utworzeniem dowolnego kanału. Zobacz przykładową sekcję przykładu kodu.
Często aplikacje klienckie lub wywołujące aplikacje (na przykład aplikacje warstwy środkowej to aplikacje klienckie) używające tego typu również mają złożone potrzeby związane z zarządzaniem stanem, a także wymagania dotyczące wydajności. Aby uzyskać więcej informacji na temat tych scenariuszy, zobacz Aplikacje klienckie warstwy środkowej.
Konstruktory
ChannelFactory<TChannel>() |
Inicjuje nowe wystąpienie klasy ChannelFactory<TChannel>. |
ChannelFactory<TChannel>(Binding) |
Inicjuje nowe wystąpienie klasy ChannelFactory<TChannel>. |
ChannelFactory<TChannel>(Binding, EndpointAddress) |
Inicjuje ChannelFactory<TChannel> nowe wystąpienie klasy z określonym powiązaniem i adresem punktu końcowego. |
ChannelFactory<TChannel>(Binding, String) |
Inicjuje ChannelFactory<TChannel> nowe wystąpienie klasy z określonym powiązaniem i adresem zdalnym. |
ChannelFactory<TChannel>(ServiceEndpoint) |
Inicjuje ChannelFactory<TChannel> nowe wystąpienie klasy, która tworzy kanały z określonym punktem końcowym. |
ChannelFactory<TChannel>(String) |
Inicjuje ChannelFactory<TChannel> nowe wystąpienie klasy o określonej nazwie konfiguracji punktu końcowego. |
ChannelFactory<TChannel>(String, EndpointAddress) |
Inicjuje ChannelFactory<TChannel> nowe wystąpienie klasy skojarzonej z określoną nazwą konfiguracji punktu końcowego i adresu zdalnego. |
ChannelFactory<TChannel>(Type) |
Inicjuje nowe wystąpienie klasy ChannelFactory<TChannel>. |
Właściwości
Credentials |
Pobiera poświadczenia używane przez klientów do komunikowania punktu końcowego usługi za pośrednictwem kanałów generowanych przez fabrykę. (Odziedziczone po ChannelFactory) |
DefaultCloseTimeout |
Pobiera domyślny interwał czasu podany dla operacji zamknięcia do ukończenia. (Odziedziczone po ChannelFactory) |
DefaultOpenTimeout |
Pobiera domyślny interwał czasu podany dla operacji otwierania do ukończenia. (Odziedziczone po ChannelFactory) |
Endpoint |
Pobiera punkt końcowy usługi, z którym łączą się kanały generowane przez fabrykę. (Odziedziczone po ChannelFactory) |
IsDisposed |
Pobiera wartość wskazującą, czy obiekt komunikacji został usunięty. (Odziedziczone po CommunicationObject) |
State |
Pobiera wartość wskazującą bieżący stan obiektu komunikacji. (Odziedziczone po CommunicationObject) |
ThisLock |
Pobiera wzajemnie wykluczający się blokada, która chroni wystąpienie klasy podczas przejścia stanu. (Odziedziczone po CommunicationObject) |
Metody
Abort() |
Powoduje natychmiastowe przejście obiektu komunikacyjnego z bieżącego stanu do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
ApplyConfiguration(String) |
Inicjuje fabrykę kanałów z zachowaniami dostarczonymi przez określony plik konfiguracji i tymi w punkcie końcowym usługi fabryki kanałów. (Odziedziczone po ChannelFactory) |
BeginClose(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby zamknąć obiekt komunikacji. (Odziedziczone po CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby zamknąć obiekt komunikacji z określonym limitem czasu. (Odziedziczone po CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby otworzyć obiekt komunikacji. (Odziedziczone po CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną, aby otworzyć obiekt komunikacji w określonym przedziale czasu. (Odziedziczone po CommunicationObject) |
Close() |
Powoduje przejście obiektu komunikacyjnego z bieżącego stanu do stanu zamkniętego. (Odziedziczone po CommunicationObject) |
Close(TimeSpan) |
Powoduje przejście obiektu komunikacyjnego z bieżącego stanu do stanu zamkniętego w określonym przedziale czasu. (Odziedziczone po CommunicationObject) |
CreateChannel() |
Tworzy kanał określonego typu do określonego adresu punktu końcowego. |
CreateChannel(Binding, EndpointAddress) |
Tworzy kanał określonego typu, który jest używany do wysyłania komunikatów do punktu końcowego usługi skonfigurowanego przy użyciu określonego powiązania. |
CreateChannel(Binding, EndpointAddress, Uri) |
Tworzy kanał określonego typu, który jest używany do wysyłania komunikatów do punktu końcowego usługi pod określonym adresem transportu skonfigurowanym przy użyciu określonego powiązania. |
CreateChannel(EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi pod określonym adresem punktu końcowego. |
CreateChannel(EndpointAddress, Uri) |
Tworzy kanał używany do wysyłania komunikatów do usługi pod określonym adresem punktu końcowego za pośrednictwem określonego adresu transportu. |
CreateChannel(String) |
Tworzy kanał służący do wysyłania komunikatów do usługi, której punkt końcowy jest skonfigurowany w określony sposób. |
CreateChannelWithActAsToken(SecurityToken) |
Tworzy kanał służący do wysyłania komunikatów do usługi z tokenem zabezpieczającym. |
CreateChannelWithActAsToken(SecurityToken, EndpointAddress) |
Tworzy kanał służący do wysyłania komunikatów do usługi z tokenem zabezpieczającym pod określonym adresem punktu końcowego. |
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri) |
Tworzy kanał służący do wysyłania komunikatów do usługi z tokenem zabezpieczającym pod określonym adresem punktu końcowego za pośrednictwem określonego adresu transportu. |
CreateChannelWithIssuedToken(SecurityToken) |
Tworzy kanał używany do wysyłania komunikatów do usługi z wystawionym tokenem zabezpieczającym. |
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi z wystawionym tokenem zabezpieczającym pod określonym adresem punktu końcowego. |
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri) |
Tworzy kanał używany do wysyłania komunikatów do usługi z wystawionym tokenem zabezpieczającym pod określonym adresem punktu końcowego za pośrednictwem określonego adresu transportu. |
CreateChannelWithOnBehalfOfToken(SecurityToken) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym w imieniu użytkownika. |
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym w imieniu określonego adresu punktu końcowego. |
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym w imieniu określonego adresu punktu końcowego za pośrednictwem określonego adresu transportu. |
CreateDescription() |
Tworzy opis punktu końcowego usługi. |
CreateFactory() |
Tworzy fabrykę kanałów dla bieżącego punktu końcowego fabryki. (Odziedziczone po ChannelFactory) |
EndClose(IAsyncResult) |
Kończy operację asynchroniczną, aby zamknąć obiekt komunikacji. (Odziedziczone po CommunicationObject) |
EndOpen(IAsyncResult) |
Wykonuje operację asynchroniczną, aby otworzyć obiekt komunikacji. (Odziedziczone po CommunicationObject) |
EnsureOpened() |
Otwiera bieżącą fabrykę kanałów, jeśli nie została jeszcze otwarta. (Odziedziczone po ChannelFactory) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Fault() |
Powoduje przejście obiektu komunikacji z bieżącego stanu do stanu błędu. (Odziedziczone po CommunicationObject) |
GetCommunicationObjectType() |
Pobiera typ obiektu komunikacji. (Odziedziczone po CommunicationObject) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetProperty<T>() |
Zwraca żądany obiekt, jeśli istnieje, z odpowiedniej warstwy w stosie kanału lub |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeEndpoint(Binding, EndpointAddress) |
Inicjuje punkt końcowy usługi fabryki kanałów z określonym powiązaniem i adresem. (Odziedziczone po ChannelFactory) |
InitializeEndpoint(EndpointAddress) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po ChannelFactory) |
InitializeEndpoint(ServiceEndpoint) |
Inicjuje punkt końcowy usługi fabryki kanałów z określonym punktem końcowym. (Odziedziczone po ChannelFactory) |
InitializeEndpoint(String, EndpointAddress) |
Inicjuje punkt końcowy usługi fabryki kanałów z określonym adresem i konfiguracją. (Odziedziczone po ChannelFactory) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnAbort() |
Przerywa wewnętrzną fabrykę kanałów bieżącej fabryki kanałów. (Odziedziczone po ChannelFactory) |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Rozpoczyna asynchroniczną operację zamykania w wewnętrznej fabryce kanałów bieżącej fabryki kanału, która ma skojarzony obiekt stanu. (Odziedziczone po ChannelFactory) |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Rozpoczyna asynchroniczną operację otwierania w wewnętrznej fabryce kanałów bieżącej fabryki kanałów, która ma skojarzony obiekt stanu. (Odziedziczone po ChannelFactory) |
OnClose(TimeSpan) |
Wywołuje zamknięcie w wewnętrznej fabryce kanału z określonym limitem czasu na zakończenie operacji. (Odziedziczone po ChannelFactory) |
OnCloseAsync(TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po ChannelFactory) |
OnClosed() |
Wywoływane podczas przechodzenia obiektu komunikacyjnego do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
OnClosing() |
Wywoływane podczas przechodzenia obiektu komunikacyjnego do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
OnEndClose(IAsyncResult) |
Wykonuje asynchroniczną operację zamykania w wewnętrznej fabryce kanałów bieżącej fabryki kanałów. (Odziedziczone po ChannelFactory) |
OnEndOpen(IAsyncResult) |
Wykonuje asynchroniczną operację otwierania w wewnętrznej fabryce kanałów bieżącej fabryki kanałów. (Odziedziczone po ChannelFactory) |
OnFaulted() |
Wstawia przetwarzanie na obiekcie komunikacji po przejściu do stanu błędu z powodu wywołania synchronicznej operacji błędu. (Odziedziczone po CommunicationObject) |
OnOpen(TimeSpan) |
Wywołuje otwarte w wewnętrznej fabryce kanałów bieżącej fabryki kanałów z określonym limitem czasu na zakończenie operacji. (Odziedziczone po ChannelFactory) |
OnOpenAsync(TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po ChannelFactory) |
OnOpened() |
Inicjuje kopię ClientCredentials obiektu tylko do odczytu dla fabryki kanałów. (Odziedziczone po ChannelFactory) |
OnOpening() |
Tworzy wewnętrzną fabrykę kanałów dla bieżącego kanału. (Odziedziczone po ChannelFactory) |
Open() |
Powoduje przejście obiektu komunikacji z utworzonego stanu do stanu otwartego. (Odziedziczone po CommunicationObject) |
Open(TimeSpan) |
Powoduje przejście obiektu komunikacyjnego z utworzonego stanu do otwartego stanu w określonym przedziale czasu. (Odziedziczone po CommunicationObject) |
ThrowIfDisposed() |
Zgłasza wyjątek, jeśli obiekt komunikacji jest usuwany. (Odziedziczone po CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Zgłasza wyjątek, jeśli obiekt komunikacji, który State właściwość nie jest ustawiona na Created stan . (Odziedziczone po CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Zgłasza wyjątek, jeśli obiekt komunikacji nie znajduje się w Opened stanie . (Odziedziczone po CommunicationObject) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Zdarzenia
Closed |
Występuje, gdy obiekt komunikacji przechodzi do stanu zamkniętego. (Odziedziczone po CommunicationObject) |
Closing |
Występuje, gdy obiekt komunikacji przechodzi do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
Faulted |
Występuje, gdy obiekt komunikacji przechodzi do stanu błędu. (Odziedziczone po CommunicationObject) |
Opened |
Występuje, gdy obiekt komunikacji przechodzi do otwartego stanu. (Odziedziczone po CommunicationObject) |
Opening |
Występuje, gdy obiekt komunikacji przechodzi do stanu otwarcia. (Odziedziczone po CommunicationObject) |
Jawne implementacje interfejsu
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po CommunicationObject) |
IAsyncDisposable.DisposeAsync() |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. (Odziedziczone po ChannelFactory) |
IDisposable.Dispose() |
Zamyka bieżącą fabrykę kanałów. (Odziedziczone po ChannelFactory) |
Metody rozszerzania
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. |
GetInternalCloseTimeout(CommunicationObject) |
Fabryka, która tworzy kanały różnych typów, które są używane przez klientów do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje sposób oczekiwania na zadania zwracane z jednorazowego użytku asynchronicznego. |
Dotyczy
Bezpieczeństwo wątkowe
Ten typ jest bezpieczny wątkowo.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla