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