DuplexChannelFactory<TChannel> Třída

Definice

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

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 kanálu vytvořeného továrnou kanálů.

Dědičnost
Odvozené

Příklady

Následující ukázka ukazuje, jak vytvořit kanálovou továrnu a použít ji k vytváření a správě kanálů.

// 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);
        }
    }

Poznámky

Duplexní kanál umožňuje klientům a serverům komunikovat mezi sebou nezávisle tak, aby jeden z nich mohl iniciovat volání druhého kanálu. Duplexní služba může odesílat zprávy do koncového bodu klienta, což zajišťuje chování podobné událostem. Duplexní komunikace probíhá, když klient naváže relaci se službou a poskytuje službě kanál, ve kterém může služba odesílat zprávy zpět klientovi. Různé CreateChannel metody se používají k vytvoření těchto duplexní kanály. Vzor duplexních zpráv je jedním ze tří vzorů zpráv, které jsou k dispozici pro služby WCF (Windows Communication Foundation). Další dva vzory zpráv jsou jednosměrné a žádost-odpověď.

Obecné informace o duplexních službách, které klientům umožňují připojit se zpět ke službě, najdete v tématu Duplexní služby. Přehled a diskuzi o krocích, které jsou součástí psaní klientské aplikace wcf (Windows Communication Foundation) pomocí objektu pro vytváření kanálů, najdete v tématu Postupy: Použití ChannelFactory. Postup popisující, jak vytvořit klienta WCF (Windows Communication Foundation) v klientské třídě, která implementuje rozhraní zpětného volání pro přístup ke službě, která používá vzor duplexního zasílání zpráv, najdete v tématu Postupy: Přístup ke službám pomocí duplexního kontraktu.

Konstruktory

DuplexChannelFactory<TChannel>(InstanceContext)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným kontextem instance.

DuplexChannelFactory<TChannel>(InstanceContext, Binding)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s kontextem, který implementuje kontrakt zpětného volání a zadanou vazbu.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou vazbu a adresu koncového bodu.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným kontextem instance, vazbou a vzdálenou adresou.

DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadaný koncový bod.

DuplexChannelFactory<TChannel>(InstanceContext, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou konfiguraci.

DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou konfiguraci a adresu koncového bodu.

DuplexChannelFactory<TChannel>(Object)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání.

DuplexChannelFactory<TChannel>(Object, Binding)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou vazbu.

DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou vazbu a adresu koncového bodu.

DuplexChannelFactory<TChannel>(Object, Binding, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným objektem zpětného volání, vazbou a vzdálenou adresou.

DuplexChannelFactory<TChannel>(Object, ServiceEndpoint)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadaný koncový bod.

DuplexChannelFactory<TChannel>(Object, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání a zadanou konfiguraci.

DuplexChannelFactory<TChannel>(Object, String, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy s objektem, který implementuje kontrakt zpětného volání, a zadanou konfigurací a adresou koncového bodu.

DuplexChannelFactory<TChannel>(Type)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání.

DuplexChannelFactory<TChannel>(Type, Binding)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání a vazby.

DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání, vazby a vzdálené adresy.

DuplexChannelFactory<TChannel>(Type, Binding, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání, vazby a vzdálené adresy.

DuplexChannelFactory<TChannel>(Type, ServiceEndpoint)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání a koncového bodu služby.

DuplexChannelFactory<TChannel>(Type, String)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání a konfigurace.

DuplexChannelFactory<TChannel>(Type, String, EndpointAddress)

Inicializuje novou instanci DuplexChannelFactory<TChannel> třídy se zadaným typem instance zpětného volání, konfigurace a vzdálené adresy.

Vlastnosti

Credentials

Získá přihlašovací údaje používané klienty ke komunikaci koncového bodu služby přes kanály vytvořené továrnou.

(Zděděno od ChannelFactory)
DefaultCloseTimeout

Získá výchozí časový interval zadaný pro dokončení operace uzavření.

(Zděděno od ChannelFactory)
DefaultOpenTimeout

Získá výchozí časový interval zadaný pro dokončení operace otevření.

(Zděděno od ChannelFactory)
Endpoint

Získá koncový bod služby, ke kterému se připojují kanály vytvořené továrnou.

(Zděděno od ChannelFactory)
IsDisposed

Získá hodnotu, která označuje, zda komunikační objekt byl odstraněn.

(Zděděno od CommunicationObject)
State

Získá hodnotu, která označuje aktuální stav komunikačního objektu.

(Zděděno od CommunicationObject)
ThisLock

Získá vzájemně se vylučující zámek, který chrání instanci třídy během přechodu stavu.

(Zděděno od CommunicationObject)

Metody

Abort()

Způsobí, že komunikační objekt okamžitě přejde z aktuálního stavu do uzavírací.

(Zděděno od CommunicationObject)
ApplyConfiguration(String)

Inicializuje objekt pro vytváření kanálů s chováním poskytovaným zadaným konfiguračním souborem a chováními v koncovém bodu služby objektu pro vytváření kanálů.

(Zděděno od ChannelFactory)
BeginClose(AsyncCallback, Object)

Zahájí asynchronní operaci k zavření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci uzavření komunikačního objektu se zadaným časovým limitem.

(Zděděno od CommunicationObject)
BeginOpen(AsyncCallback, Object)

Zahájí asynchronní operaci otevření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci, která otevře komunikační objekt v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
Close()

Způsobí přechod komunikačního objektu z aktuálního stavu do uzavřeného stavu.

(Zděděno od CommunicationObject)
Close(TimeSpan)

Způsobí přechod komunikačního objektu z aktuálního stavu do uzavřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
CreateChannel()

Vytvoří kanál zadaného typu na zadanou adresu koncového bodu.

(Zděděno od ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

Vytvoří kanál, který se používá k odesílání zpráv do služby na konkrétní adrese koncového bodu.

(Zděděno od ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext, Binding, EndpointAddress)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext, Binding, EndpointAddress, Uri)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext, EndpointAddress)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext, EndpointAddress, Uri)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(InstanceContext, String)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(Object, Binding, EndpointAddress)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(Object, Binding, EndpointAddress, Uri)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannel(Object, String)

Vytvoří duplexní kanál mezi službou a instancí zpětného volání v klientovi.

CreateChannelWithActAsToken(SecurityToken)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení na konkrétní adrese koncového bodu.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení na konkrétní adrese koncového bodu prostřednictvím zadané přenosové adresy.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

Vytvoří kanál, který se používá k odesílání zpráv do služby s vydaným tokenem zabezpečení.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Vytvoří kanál, který se používá k odesílání zpráv do služby s vydaným tokenem zabezpečení na konkrétní adrese koncového bodu.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Vytvoří kanál, který se používá k odesílání zpráv do služby s vystaveným tokenem zabezpečení na konkrétní adrese koncového bodu prostřednictvím zadané přenosové adresy.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení jménem.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení jménem na konkrétní adrese koncového bodu.

(Zděděno od ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Vytvoří kanál, který se používá k odesílání zpráv do služby s tokenem zabezpečení jménem tokenu zabezpečení na konkrétní adrese koncového bodu prostřednictvím zadané přenosové adresy.

(Zděděno od ChannelFactory<TChannel>)
CreateDescription()

Vytvoří popis koncového bodu služby.

(Zděděno od ChannelFactory<TChannel>)
CreateFactory()

Vytvoří objekt pro vytváření kanálů pro aktuální koncový bod továrny.

(Zděděno od ChannelFactory)
EndClose(IAsyncResult)

Dokončí asynchronní operaci pro zavření komunikačního objektu.

(Zděděno od CommunicationObject)
EndOpen(IAsyncResult)

Dokončí asynchronní operaci pro otevření komunikačního objektu.

(Zděděno od CommunicationObject)
EnsureOpened()

Otevře aktuální objekt pro vytváření kanálů, pokud ještě není otevřený.

(Zděděno od ChannelFactory)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Fault()

Způsobí přechod komunikačního objektu z aktuálního stavu do stavu selhání.

(Zděděno od CommunicationObject)
GetCommunicationObjectType()

Získá typ komunikačního objektu.

(Zděděno od CommunicationObject)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetProperty<T>()

Vrátí typovaný objekt požadovaný (pokud existuje) z příslušné vrstvy v zásobníku kanálů nebo null pokud neexistuje.

(Zděděno od ChannelFactory)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
InitializeEndpoint(Binding, EndpointAddress)

Inicializuje koncový bod služby objektu pro vytváření kanálů se zadanou vazbou a adresou.

(Zděděno od ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Inicializuje koncový bod služby objektu pro vytváření kanálů se zadaným koncovým bodem.

(Zděděno od ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Inicializuje koncový bod služby objektu pro vytváření kanálů se zadanou adresou a konfigurací.

(Zděděno od ChannelFactory)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnAbort()

Ukončí vytváření vnitřního kanálu aktuálního kanálu.

(Zděděno od ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci zavření na objektu pro vytváření vnitřního kanálu aktuálního objektu pro vytváření kanálů, který má přidružený objekt stavu.

(Zděděno od ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci otevření na objektu pro vytváření vnitřního kanálu aktuálního objektu pro vytváření kanálů, který má přidružený objekt stavu.

(Zděděno od ChannelFactory)
OnClose(TimeSpan)

Volání se zavřou do objektu pro vytváření vnitřního kanálu se zadaným časovým limitem pro dokončení operace.

(Zděděno od ChannelFactory)
OnCloseAsync(TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

(Zděděno od ChannelFactory)
OnClosed()

Vyvoláno během přechodu komunikačního objektu do uzavíraného stavu.

(Zděděno od CommunicationObject)
OnClosing()

Vyvoláno během přechodu komunikačního objektu do uzavíraného stavu.

(Zděděno od CommunicationObject)
OnEndClose(IAsyncResult)

Dokončí asynchronní operaci zavření na objektu pro vytváření vnitřního kanálu aktuálního kanálu.

(Zděděno od ChannelFactory)
OnEndOpen(IAsyncResult)

Dokončí asynchronní operaci otevření na objektu pro vytváření vnitřního kanálu aktuálního kanálu.

(Zděděno od ChannelFactory)
OnFaulted()

Vloží zpracování komunikačního objektu poté, co přejde do chybného stavu v důsledku vyvolání synchronní operace selhání.

(Zděděno od CommunicationObject)
OnOpen(TimeSpan)

Volání otevřená v objektu pro vytváření vnitřního kanálu aktuálního kanálu se zadaným časovým limitem pro dokončení operace.

(Zděděno od ChannelFactory)
OnOpenAsync(TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

(Zděděno od ChannelFactory)
OnOpened()

Inicializuje kopii objektu určenou ClientCredentials jen pro čtení pro objekt pro vytváření kanálů.

(Zděděno od ChannelFactory)
OnOpening()

Vytvoří objekt pro vytváření vnitřního kanálu pro aktuální kanál.

(Zděděno od ChannelFactory)
Open()

Způsobí přechod komunikačního objektu ze stavu vytvoření do otevřeného stavu.

(Zděděno od CommunicationObject)
Open(TimeSpan)

Způsobí přechod komunikačního objektu z vytvořeného stavu do otevřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
ThrowIfDisposed()

Vyvolá výjimku, pokud je komunikační objekt odstraněn.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrImmutable()

Vyvolá výjimku, pokud komunikační objekt State vlastnost není nastavena Created na stav.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrNotOpen()

Vyvolá výjimku, pokud komunikační objekt není ve Opened stavu .

(Zděděno od CommunicationObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

Closed

Vyvolá se při přechodu komunikačního objektu do uzavřeného stavu.

(Zděděno od CommunicationObject)
Closing

Nastane, když komunikační objekt přejde do uzavírací stav.

(Zděděno od CommunicationObject)
Faulted

Vyvolá se při přechodu komunikačního objektu do chybného stavu.

(Zděděno od CommunicationObject)
Opened

Vyvolá se při přechodu komunikačního objektu do otevřeného stavu.

(Zděděno od CommunicationObject)
Opening

Nastane, když komunikační objekt přejde do stavu otevření.

(Zděděno od CommunicationObject)

Explicitní implementace rozhraní

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

(Zděděno od CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

(Zděděno od CommunicationObject)
IAsyncDisposable.DisposeAsync()

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

(Zděděno od ChannelFactory)
IDisposable.Dispose()

Zavře aktuální objekt pro vytváření kanálů.

(Zděděno od ChannelFactory)

Metody rozšíření

CloseHelperAsync(ICommunicationObject, TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

GetInternalCloseTimeout(CommunicationObject)

Poskytuje prostředky pro vytváření a správu duplexních kanálů různých typů, které klienti používají k odesílání a přijímání zpráv do a z koncových bodů služby.

Platí pro