DuplexChannelFactory<TChannel> Classe

Définition

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

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)

Paramètres de type

TChannel

Type de canal produit par la fabrique de canal.

Héritage
Dérivé

Exemples

L'exemple suivant montre comment créer une fabrication de canal et l'utiliser pour créer et gérer des canaux.

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

Remarques

Un canal duplex autorise les clients et les serveurs à communiquer entre eux indépendamment de sorte que l'un puisse initier des appels à l'autre. Un service en duplex peut envoyer des messages au point de terminaison client, en fournissant le comportement de type événement. La communication duplex se produit lorsqu'un client établit une session avec un service et fournit à celui-ci un canal sur lequel il peut retourner des messages au client. Les différentes méthodes CreateChannel sont utilisées pour créer ces canaux duplex. Le modèle de message duplex est l’un des trois modèles de message disponibles pour les services Windows Communication Foundation (WCF). Les deux autres modèles de message sont unidirectionnels et demande/réponse.

Pour une présentation générale des services duplex qui permettent aux clients de se reconnecter au service, consultez Services duplex. Pour obtenir un plan et une discussion sur les étapes impliquées dans l’écriture d’une application cliente Windows Communication Foundation (WCF) à l’aide d’une fabrique de canaux, consultez Guide pratique pour utiliser ChannelFactory. Pour obtenir une procédure décrivant comment créer un client Windows Communication Foundation (WCF) dans une classe cliente qui implémente l’interface de rappel pour accéder à un service qui utilise un modèle de messagerie duplex, consultez Guide pratique pour accéder aux services avec un contrat duplex.

Constructeurs

DuplexChannelFactory<TChannel>(InstanceContext)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le contexte d'instance spécifié.

DuplexChannelFactory<TChannel>(InstanceContext, Binding)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un contexte qui implémente le contrat de rappel et une liaison spécifiée.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une liaison et une adresse de point de terminaison spécifiées.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un contexte d’instance, une liaison et une adresse distante spécifiés.

DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et un point de terminaison spécifié.

DuplexChannelFactory<TChannel>(InstanceContext, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une configuration spécifiée.

DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une configuration et une adresse de point de terminaison spécifiées.

DuplexChannelFactory<TChannel>(Object)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel.

DuplexChannelFactory<TChannel>(Object, Binding)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une liaison spécifiée.

DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une liaison et une adresse de point de terminaison spécifiées.

DuplexChannelFactory<TChannel>(Object, Binding, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet de rappel, une liaison et une adresse distante spécifiés.

DuplexChannelFactory<TChannel>(Object, ServiceEndpoint)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et un point de terminaison spécifié.

DuplexChannelFactory<TChannel>(Object, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une configuration spécifiée.

DuplexChannelFactory<TChannel>(Object, String, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un objet qui implémente le contrat de rappel et une configuration et une adresse de point de terminaison spécifiées.

DuplexChannelFactory<TChannel>(Type)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d'instance de rappel spécifié.

DuplexChannelFactory<TChannel>(Type, Binding)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d'instance de rappel et de liaison spécifié.

DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec un type d'instance de rappel, une liaison et une adresse distante spécifiés.

DuplexChannelFactory<TChannel>(Type, Binding, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d’instance de rappel, une liaison et une adresse distante spécifiés.

DuplexChannelFactory<TChannel>(Type, ServiceEndpoint)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d'instance de rappel et de point de terminaison de service spécifiés.

DuplexChannelFactory<TChannel>(Type, String)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d'instance de rappel et de configuration spécifiés.

DuplexChannelFactory<TChannel>(Type, String, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexChannelFactory<TChannel> avec le type d'instance de rappel, une configuration et une adresse distante spécifiés.

Propriétés

Credentials

Obtient les informations d'identification utilisées par les clients pour communiquer un point de terminaison de service sur les canaux générés par la fabrique.

(Hérité de ChannelFactory)
DefaultCloseTimeout

Obtient l'intervalle de temps par défaut fourni pour terminer une opération de fermeture.

(Hérité de ChannelFactory)
DefaultOpenTimeout

Obtient l'intervalle de temps par défaut fourni pour terminer une opération d'ouverture.

(Hérité de ChannelFactory)
Endpoint

Obtient le point de terminaison du service auquel se connectent les canaux générés par la fabrique.

(Hérité de ChannelFactory)
IsDisposed

Obtient une valeur qui indique si l'objet de communication a été supprimé.

(Hérité de CommunicationObject)
State

Obtient une valeur qui indique l'état actuel de l'objet de communication.

(Hérité de CommunicationObject)
ThisLock

Obtient le verrou mutuellement exclusif qui protège l'instance de classe pendant une transition d'état.

(Hérité de CommunicationObject)

Méthodes

Abort()

Provoque la transition immédiate d'un objet de communication de son état actuel à l'état de fermeture.

(Hérité de CommunicationObject)
ApplyConfiguration(String)

Initialise la fabrique de canal avec les comportements fournis par un fichier de configuration spécifié et avec ceux définis dans le point de terminaison du service de la fabrique de canal.

(Hérité de ChannelFactory)
BeginClose(AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication.

(Hérité de CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour fermer un objet de communication avec un délai d'attente spécifié.

(Hérité de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication.

(Hérité de CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir un objet de communication dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
Close()

Provoque la transition d'un objet de communication de son état actuel à l'état fermé.

(Hérité de CommunicationObject)
Close(TimeSpan)

Provoque la transition d'un objet de communication de son état actuel à l'état fermé dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
CreateChannel()

Crée un canal d'un type spécifié à une adresse de point de terminaison spécifiée.

(Hérité de ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service à une adresse de point de terminaison spécifique.

(Hérité de ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext, Binding, EndpointAddress)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext, Binding, EndpointAddress, Uri)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext, EndpointAddress)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext, EndpointAddress, Uri)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(InstanceContext, String)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(Object, Binding, EndpointAddress)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(Object, Binding, EndpointAddress, Uri)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannel(Object, String)

Crée un canal duplex entre un service et une instance de rappel sur le client.

CreateChannelWithActAsToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité à une adresse de point de terminaison spécifique.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant comme un jeton de sécurité émis.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service avec un jeton de sécurité émis à une adresse de point de terminaison spécifique.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service avec un jeton de sécurité émis à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte d'un jeton de sécurité.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte d'un jeton de sécurité à une adresse de point de terminaison spécifique.

(Hérité de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Crée un canal utilisé pour envoyer des messages à un service agissant pour le compte du jeton de sécurité à une adresse de point de terminaison spécifique via une adresse de transport spécifiée.

(Hérité de ChannelFactory<TChannel>)
CreateDescription()

Crée une description du point de terminaison de service.

(Hérité de ChannelFactory<TChannel>)
CreateFactory()

Génère la fabrique de canal pour le point de terminaison actif de la fabrique.

(Hérité de ChannelFactory)
EndClose(IAsyncResult)

Termine une opération asynchrone pour fermer un objet de communication.

(Hérité de CommunicationObject)
EndOpen(IAsyncResult)

Termine une opération asynchrone pour ouvrir un objet de communication.

(Hérité de CommunicationObject)
EnsureOpened()

Ouvre la fabrique de canal active si elle n'est pas encore ouverte.

(Hérité de ChannelFactory)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Fault()

Provoque la transition d'un objet de communication de son état actuel à l'état d'erreur.

(Hérité de CommunicationObject)
GetCommunicationObjectType()

Obtient le type d'objet de communication.

(Hérité de CommunicationObject)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetProperty<T>()

Retourne l'objet typé demandé (s'il existe) depuis la couche appropriée de la pile des canaux, ou la valeur null si l'objet est absent.

(Hérité de ChannelFactory)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeEndpoint(Binding, EndpointAddress)

Initialise le point de terminaison du service de la fabrique de canal avec une liaison et une adresse spécifiées.

(Hérité de ChannelFactory)
InitializeEndpoint(EndpointAddress)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Initialise le point de terminaison du service de la fabrication de canal avec un point de terminaison spécifié.

(Hérité de ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Initialise le point de terminaison du service de la fabrique de canal avec une adresse et une configuration spécifiées.

(Hérité de ChannelFactory)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnAbort()

Ferme la fabrication de canal interne de la fabrication de canal active.

(Hérité de ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Amorce une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique active à laquelle est associé un objet d'état.

(Hérité de ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Amorce une opération d'ouverture asynchrone sur la fabrique de canal interne de la fabrique active à laquelle est associé un objet d'état.

(Hérité de ChannelFactory)
OnClose(TimeSpan)

Appelle la fermeture sur la fabrique de canal interne avec un délai d'attente spécifié pour l'achèvement de l'opération.

(Hérité de ChannelFactory)
OnCloseAsync(TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de ChannelFactory)
OnClosed()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.

(Hérité de CommunicationObject)
OnClosing()

Appelé pendant la transition d'un objet de communication à l'état de fermeture.

(Hérité de CommunicationObject)
OnEndClose(IAsyncResult)

Clôture une opération de fermeture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle.

(Hérité de ChannelFactory)
OnEndOpen(IAsyncResult)

Clôture une opération d'ouverture asynchrone sur la fabrique de canal interne de la fabrique de canal actuelle.

(Hérité de ChannelFactory)
OnFaulted()

Insère le traitement sur un objet de communication après sa transition vers l’état d’erreur en raison de l’appel d’une opération d’erreur synchrone.

(Hérité de CommunicationObject)
OnOpen(TimeSpan)

Appelle l'ouverture sur la fabrique de canal interne de la fabrique active avec un délai d'attente spécifié pour l'achèvement de l'opération.

(Hérité de ChannelFactory)
OnOpenAsync(TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de ChannelFactory)
OnOpened()

Initialise une copie en lecture seule de l'objet ClientCredentials pour la fabrique de canal.

(Hérité de ChannelFactory)
OnOpening()

Génère la fabrication de canal interne pour le canal actif.

(Hérité de ChannelFactory)
Open()

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert.

(Hérité de CommunicationObject)
Open(TimeSpan)

Provoque la transition d'un objet de communication de l'état créé à l'état ouvert dans un intervalle de temps spécifié.

(Hérité de CommunicationObject)
ThrowIfDisposed()

Renvoie une exception si l'objet de communication est supprimé.

(Hérité de CommunicationObject)
ThrowIfDisposedOrImmutable()

Renvoie une exception si la propriété State de l'objet de communication n'a pas pour valeur l'état Created.

(Hérité de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Renvoie une exception si l'objet de communication n'est pas dans l'état Opened.

(Hérité de CommunicationObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Événements

Closed

Se produit lorsqu'un objet de communication passe à l'état fermé.

(Hérité de CommunicationObject)
Closing

Se produit lorsqu'un objet de communication passe à l'état de fermeture.

(Hérité de CommunicationObject)
Faulted

Se produit lorsqu'un objet de communication passe à l'état d'erreur.

(Hérité de CommunicationObject)
Opened

Se produit lorsqu'un objet de communication passe à l'état ouvert.

(Hérité de CommunicationObject)
Opening

Se produit lorsqu'un objet de communication passe à l'état d'ouverture.

(Hérité de CommunicationObject)

Implémentations d’interfaces explicites

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de CommunicationObject)
IAsyncDisposable.DisposeAsync()

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

(Hérité de ChannelFactory)
IDisposable.Dispose()

Ferme la fabrication de canal active.

(Hérité de ChannelFactory)

Méthodes d’extension

CloseHelperAsync(ICommunicationObject, TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

GetInternalCloseTimeout(CommunicationObject)

Fournit les moyens permettant de créer et gérer des canaux duplex de types différents utilisés par les clients pour envoyer des messages à et recevoir des messages de points de terminaison de service.

S’applique à