DuplexChannelFactory<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.
Umożliwia tworzenie kanałów dwukierunkowych różnych typów używanych przez klientów do wysyłania i odbierania komunikatów do i z punktów końcowych usługi oraz zarządzania nimi.
generic <typename TChannel>
public ref class DuplexChannelFactory : System::ServiceModel::ChannelFactory<TChannel>
public class DuplexChannelFactory<TChannel> : System.ServiceModel.ChannelFactory<TChannel>
type DuplexChannelFactory<'Channel> = class
inherit ChannelFactory<'Channel>
Public Class DuplexChannelFactory(Of TChannel)
Inherits ChannelFactory(Of TChannel)
Parametry typu
- TChannel
Typ kanału produkowanego przez fabrykę kanałów.
- Dziedziczenie
- Pochodne
Przykłady
W poniższym przykładzie pokazano, jak utworzyć fabrykę kanałów i użyć jej do tworzenia kanałów i zarządzania nimi.
// Construct InstanceContext to handle messages on the callback interface.
// An instance of ChatApp is created and passed to the InstanceContext.
InstanceContext site = new InstanceContext(new ChatApp());
// Create the participant with the given endpoint configuration.
// Each participant opens a duplex channel to the mesh.
// Participant is an instance of the chat application that has opened a channel to the mesh.
using (DuplexChannelFactory<IChatChannel> cf =
new DuplexChannelFactory<IChatChannel>(site,"ChatEndpoint"))
{
X509Certificate2 issuer = GetCertificate(
StoreName.CertificateAuthority,
StoreLocation.CurrentUser, "CN=" + issuerName,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.Certificate =
GetCertificate(StoreName.My,
StoreLocation.CurrentUser,
"CN=" + member,
X509FindType.FindBySubjectDistinguishedName);
cf.Credentials.Peer.PeerAuthentication.CertificateValidationMode =
X509CertificateValidationMode.Custom;
cf.Credentials.Peer.PeerAuthentication.CustomCertificateValidator =
new IssuerBasedValidator();
using (IChatChannel participant = cf.CreateChannel())
{
// Retrieve the PeerNode associated with the participant and register for online/offline events.
// PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
IOnlineStatus ostat = participant.GetProperty<IOnlineStatus>();
ostat.Online += new EventHandler(OnOnline);
ostat.Offline += new EventHandler(OnOffline);
Console.WriteLine("{0} is ready", member);
Console.WriteLine("Press <ENTER> to send the chat message.");
// Announce self to other participants.
participant.Join(member);
Console.ReadLine();
participant.Chat(member, "Hi there - I am chatting");
Console.WriteLine("Press <ENTER> to terminate this instance of chat.");
Console.ReadLine();
// Leave the mesh and close the client.
participant.Leave(member);
}
}
Uwagi
Kanał dwukierunkowy umożliwia klientom i serwerom komunikowanie się ze sobą niezależnie, dzięki czemu każdy z nich może inicjować wywołania do drugiego. Usługa dwukierunkowa może wysyłać komunikaty do punktu końcowego klienta, zapewniając zachowanie podobne do zdarzeń. Komunikacja dwukierunkowa występuje, gdy klient ustanawia sesję z usługą i zapewnia usłudze kanał, na którym usługa może wysyłać komunikaty z powrotem do klienta. Różne metody CreateChannel służą do tworzenia tych kanałów dwukierunkowych. Wzorzec komunikatów dwukierunkowych jest jednym z trzech wzorców komunikatów dostępnych dla usług Windows Communication Foundation (WCF). Pozostałe dwa wzorce komunikatów są jednokierunkowe i żądanie-odpowiedź.
Aby zapoznać się z ogólnym omówieniem usług dwukierunkowych, które umożliwiają klientom nawiązywanie połączenia z usługą, zobacz Usług dwudupleksowych. Aby zapoznać się z konspektą i omówieniem kroków związanych z pisaniem aplikacji klienckiej windows Communication Foundation (WCF) przy użyciu fabryki kanałów, zobacz How to: Use the ChannelFactory. Aby zapoznać się z procedurą opisującą sposób tworzenia klienta programu Windows Communication Foundation (WCF) w klasie klienta implementującej interfejs wywołania zwrotnego w celu uzyskania dostępu do usługi korzystającej ze wzorca obsługi komunikatów dwukierunkowych, zobacz How to: Access Services with a Duplex Contract.
Konstruktory
| DuplexChannelFactory<TChannel>(InstanceContext) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym kontekstem wystąpienia. |
| DuplexChannelFactory<TChannel>(InstanceContext, Binding) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z kontekstem, który implementuje kontrakt wywołania zwrotnego i określone powiązanie. |
| DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego oraz określony powiązanie i adres punktu końcowego. |
| DuplexChannelFactory<TChannel>(InstanceContext, Binding, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym kontekstem wystąpienia, powiązaniem i adresem zdalnym. |
| DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego i określony punkt końcowy. |
| DuplexChannelFactory<TChannel>(InstanceContext, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego i określoną konfigurację. |
| DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego oraz określoną konfigurację i adres punktu końcowego. |
| DuplexChannelFactory<TChannel>(Object) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem implementujący kontrakt wywołania zwrotnego. |
| DuplexChannelFactory<TChannel>(Object, Binding) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego i określone powiązanie. |
| DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego oraz określony powiązanie i adres punktu końcowego. |
| DuplexChannelFactory<TChannel>(Object, Binding, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym obiektem wywołania zwrotnego, powiązaniem i adresem zdalnym. |
| DuplexChannelFactory<TChannel>(Object, ServiceEndpoint) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego i określony punkt końcowy. |
| DuplexChannelFactory<TChannel>(Object, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego i określoną konfigurację. |
| DuplexChannelFactory<TChannel>(Object, String, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z obiektem, który implementuje kontrakt wywołania zwrotnego oraz określoną konfigurację i adres punktu końcowego. |
| DuplexChannelFactory<TChannel>(Type) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia wywołania zwrotnego. |
| DuplexChannelFactory<TChannel>(Type, Binding) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia wywołania zwrotnego i powiązaniem. |
| DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia wywołania zwrotnego, powiązania i adresu zdalnego. |
| DuplexChannelFactory<TChannel>(Type, Binding, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia, powiązania i adresu zdalnego wywołania zwrotnego. |
| DuplexChannelFactory<TChannel>(Type, ServiceEndpoint) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia wywołania zwrotnego i punktu końcowego usługi. |
| DuplexChannelFactory<TChannel>(Type, String) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia i konfiguracji wywołania zwrotnego. |
| DuplexChannelFactory<TChannel>(Type, String, EndpointAddress) |
Inicjuje nowe wystąpienie klasy DuplexChannelFactory<TChannel> z określonym typem wystąpienia, konfiguracji i adresu zdalnego wywołania zwrotnego. |
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 na zakończenie operacji zamknięcia. (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 utworzone 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ącą się blokadę, 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 przy użyciu zachowań dostarczonych przez określony plik konfiguracji i z tymi w punkcie końcowym usługi fabryki kanałów. (Odziedziczone po ChannelFactory) |
| BeginClose(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną w celu zamknięcia obiektu 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ą w celu otwarcia obiektu 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. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannel(EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi pod określonym adresem punktu końcowego. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannel(EndpointAddress, Uri) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext, Binding, EndpointAddress) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext, Binding, EndpointAddress, Uri) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext, EndpointAddress) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext, EndpointAddress, Uri) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(InstanceContext, String) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(Object, Binding, EndpointAddress) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(Object, Binding, EndpointAddress, Uri) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannel(Object, String) |
Tworzy kanał dwukierunkowy między usługą a wystąpieniem wywołania zwrotnego na kliencie. |
| CreateChannelWithActAsToken(SecurityToken) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannelWithActAsToken(SecurityToken, EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym pod określonym adresem punktu końcowego. (Odziedziczone po ChannelFactory<TChannel>) |
| 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. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannelWithIssuedToken(SecurityToken) |
Tworzy kanał używany do wysyłania komunikatów do usługi z wystawionym tokenem zabezpieczającym. (Odziedziczone po ChannelFactory<TChannel>) |
| 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. (Odziedziczone po ChannelFactory<TChannel>) |
| 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. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym w imieniu użytkownika. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress) |
Tworzy kanał używany do wysyłania komunikatów do usługi z tokenem zabezpieczającym w imieniu tokenu zabezpieczającego pod określonym adresem punktu końcowego. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri) |
Tworzy kanał służący 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. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateDescription() |
Tworzy opis punktu końcowego usługi. (Odziedziczone po ChannelFactory<TChannel>) |
| CreateFactory() |
Tworzy fabrykę kanałów dla bieżącego punktu końcowego fabryki. (Odziedziczone po ChannelFactory) |
| EndClose(IAsyncResult) |
Wykonuje operację asynchroniczną w celu zamknięcia obiektu komunikacyjnego. (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 określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
| Fault() |
Powoduje przejście obiektu komunikacyjnego z bieżącego stanu na stan 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 typu , jeśli istnieje, z odpowiedniej warstwy w stosie kanału lub |
| GetType() |
Pobiera Type 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(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 Object. (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łów, która ma skojarzony z nim 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 z nim obiekt stanu. (Odziedziczone po ChannelFactory) |
| OnClose(TimeSpan) |
Wywołuje zamknięcie fabryki kanałów wewnętrznych z określonym limitem czasu na zakończenie operacji. (Odziedziczone po ChannelFactory) |
| OnClosed() |
Wywoływane podczas przejścia obiektu komunikacyjnego do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
| OnClosing() |
Wywoływane podczas przejścia obiektu komunikacyjnego do stanu zamknięcia. (Odziedziczone po CommunicationObject) |
| OnEndClose(IAsyncResult) |
Kończy 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 operacji błędu synchronicznego. (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) |
| OnOpened() |
Inicjuje kopię obiektu ClientCredentials tylko do odczytu dla fabryki kanałów. (Odziedziczone po ChannelFactory) |
| OnOpening() |
Tworzy fabrykę kanału wewnętrznego dla bieżącego kanału. (Odziedziczone po ChannelFactory) |
| Open() |
Powoduje przejście obiektu komunikacyjnego ze stanu utworzonego na otwarty stan. (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 właściwość State nie jest ustawiona na stan Created. (Odziedziczone po CommunicationObject) |
| ThrowIfDisposedOrNotOpen() |
Zgłasza wyjątek, jeśli obiekt komunikacji nie znajduje się w stanie Opened. (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 otwierania. (Odziedziczone po CommunicationObject) |
Jawne implementacje interfejsu
| IAsyncDisposable.DisposeAsync() |
Umożliwia tworzenie kanałów dwukierunkowych różnych typów używanych przez klientów do wysyłania i odbierania komunikatów do i z punktów końcowych usługi oraz zarządzania nimi. (Odziedziczone po ChannelFactory) |
| IDisposable.Dispose() |
Zamyka bieżącą fabrykę kanałów. (Odziedziczone po ChannelFactory) |
Metody rozszerzania
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguruje, w jaki sposób będą wykonywane oczekiwania na zadania zwrócone z asynchronicznego jednorazowego użytku. |