Udostępnij za pośrednictwem


DuplexChannelFactory<TChannel> Klasa

Definicja

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 null, jeśli nie istnieje.

(Odziedziczone po ChannelFactory)
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.

Dotyczy