DuplexChannelFactory<TChannel> Classe

Definição

Fornece os meios para criar e gerenciar canais duplex de tipos diferentes que são usados pelos clientes para enviar e receber mensagens e para pontos de extremidade de serviço.

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)

Parâmetros de tipo

TChannel

O tipo de canal produzido pela fábrica de canais.

Herança
Derivado

Exemplos

O exemplo a seguir mostra como criar uma fábrica de canais e usá-la para criar e gerenciar canais.

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

Comentários

Um canal duplex permite que clientes e servidores se comuniquem entre si de forma independente para que possam iniciar chamadas para o outro. Um serviço duplex pode enviar mensagens para o ponto de extremidade do cliente, fornecendo comportamento semelhante a um evento. A comunicação duplex ocorre quando um cliente estabelece uma sessão com um serviço e fornece ao serviço um canal no qual o serviço pode enviar mensagens de volta para o cliente. Os vários CreateChannel métodos são usados para criar esses canais duplex. O padrão de mensagem duplex é um dos três padrões de mensagem disponíveis para serviços Windows Communication Foundation (WCF). Os outros padrões de duas mensagens são unidirecionais e solicitação-resposta.

Para obter uma discussão geral sobre serviços duplex que permitem que os clientes se conectem novamente ao serviço, consulte Os Serviços Duplex. Para obter uma estrutura de tópicos e discussão sobre as etapas envolvidas na gravação de um aplicativo cliente do Windows Communication Foundation (WCF) usando uma fábrica de canais, consulte Como usar o ChannelFactory. Para obter um procedimento que descreve como criar um cliente Windows Communication Foundation (WCF) em uma classe cliente que implementa a interface de retorno de chamada para acessar um serviço que usa um padrão de mensagens duplex, consulte Como: Serviços do Access com um Contrato Duplex.

Construtores

DuplexChannelFactory<TChannel>(InstanceContext)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o contexto de instância especificado.

DuplexChannelFactory<TChannel>(InstanceContext, Binding)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um contexto que implementa o contrato do retorno de chamada e uma associação especificada.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma associação e um endereço do ponto de extremidade especificados.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um contexto de instância, uma associação e um endereço remoto especificados.

DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e um ponto de extremidade especificado.

DuplexChannelFactory<TChannel>(InstanceContext, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma configuração especificada.

DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma configuração e um endereço do ponto de extremidade especificados.

DuplexChannelFactory<TChannel>(Object)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada.

DuplexChannelFactory<TChannel>(Object, Binding)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma associação especificada.

DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma associação e um endereço do ponto de extremidade especificados.

DuplexChannelFactory<TChannel>(Object, Binding, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto de retorno de chamada, uma associação e um endereço remoto especificados.

DuplexChannelFactory<TChannel>(Object, ServiceEndpoint)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e um ponto de extremidade especificado.

DuplexChannelFactory<TChannel>(Object, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma configuração especificada.

DuplexChannelFactory<TChannel>(Object, String, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um objeto que implementa o contrato do retorno de chamada e uma configuração e um endereço do ponto de extremidade especificados.

DuplexChannelFactory<TChannel>(Type)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada especificado.

DuplexChannelFactory<TChannel>(Type, Binding)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada e associação especificados.

DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com um tipo de instância de retorno de chamada, associação e endereço remoto especificados.

DuplexChannelFactory<TChannel>(Type, Binding, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada, associação e endereço remoto especificados.

DuplexChannelFactory<TChannel>(Type, ServiceEndpoint)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada e ponto de extremidade de serviço especificados.

DuplexChannelFactory<TChannel>(Type, String)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada e configuração especificados.

DuplexChannelFactory<TChannel>(Type, String, EndpointAddress)

Inicializa uma nova instância da classe DuplexChannelFactory<TChannel> com o tipo de instância de retorno de chamada, configuração e endereço remoto especificados.

Propriedades

Credentials

Obtém as credenciais usadas pelos clientes para comunicação com um ponto de extremidade de serviço pelos canais produzidos pela fábrica.

(Herdado de ChannelFactory)
DefaultCloseTimeout

Obtém o intervalo de tempo padrão fornecido para a conclusão de uma operação close.

(Herdado de ChannelFactory)
DefaultOpenTimeout

Obtém o intervalo de tempo padrão fornecido para a conclusão de uma operação open.

(Herdado de ChannelFactory)
Endpoint

Obtém o ponto de extremidade de serviço ao qual os canais produzidos pela fábrica se conectam.

(Herdado de ChannelFactory)
IsDisposed

Obtém um valor que indica se o objeto de comunicação foi descartado.

(Herdado de CommunicationObject)
State

Obtém um valor que indica o estado atual do objeto de comunicação.

(Herdado de CommunicationObject)
ThisLock

Obtém o bloqueio mutuamente exclusivo que protege a instância da classe durante uma transição de estado.

(Herdado de CommunicationObject)

Métodos

Abort()

Faz com que um objeto de comunicação faça a transição imediata do estado atual para o estado de fechamento.

(Herdado de CommunicationObject)
ApplyConfiguration(String)

Inicializa a fábrica de canais com os comportamentos fornecidos por um arquivo de configuração especificado e com aqueles no ponto de extremidade de serviço da fábrica de canais.

(Herdado de ChannelFactory)
BeginClose(AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação.

(Herdado de CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para fechar um objeto de comunicação com um tempo limite especificado.

(Herdado de CommunicationObject)
BeginOpen(AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação.

(Herdado de CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação assíncrona para abrir um objeto de comunicação dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
Close()

Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado.

(Herdado de CommunicationObject)
Close(TimeSpan)

Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado dentro de um intervalo de tempo especificado.

(Herdado de CommunicationObject)
CreateChannel()

Cria um canal de um tipo especificado para um endereço do ponto de extremidade especificado.

(Herdado de ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

Cria um canal que é usado para enviar mensagens para um serviço em um endereço específico de ponto de extremidade.

(Herdado de ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext, Binding, EndpointAddress)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext, Binding, EndpointAddress, Uri)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext, EndpointAddress)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext, EndpointAddress, Uri)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(InstanceContext, String)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(Object, Binding, EndpointAddress)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(Object, Binding, EndpointAddress, Uri)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannel(Object, String)

Cria um canal duplex entre um serviço e uma instância de retorno de chamada no cliente.

CreateChannelWithActAsToken(SecurityToken)

Cria um canal que é usado para enviar mensagens para um serviço com uma ação como token de segurança.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Cria um canal que é usado para enviar mensagens para um serviço com uma ação como token de segurança em um endereço do ponto de extremidade específico.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Cria um canal que é usado para enviar mensagens para um serviço com uma ação como um token de segurança em um endereço do ponto de extremidade específico por meio de um endereço de transporte especificado.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

Cria um canal que é usado para enviar mensagens para um serviço com um token de segurança emitido.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Cria um canal que é usado para enviar mensagens para um serviço com um token de segurança emitido em um endereço do ponto de extremidade específico.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Cria um canal que é usado para enviar mensagens para um serviço com um token de segurança emitido em um endereço do ponto de extremidade específico por meio de um endereço de transporte especificado.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

Cria um canal que é usado para enviar mensagens para um serviço em nome de um token de segurança.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Cria um canal que é usado para enviar mensagens para um serviço com um token de segurança em nome de em um endereço do ponto de extremidade específico.

(Herdado de ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Cria um canal que é usado para enviar mensagens para um serviço com um token de segurança em nome de em um endereço do ponto de extremidade específico por meio de um endereço de transporte especificado.

(Herdado de ChannelFactory<TChannel>)
CreateDescription()

Cria uma descrição do ponto de extremidade de serviço.

(Herdado de ChannelFactory<TChannel>)
CreateFactory()

Cria a fábrica de canais para o ponto de extremidade atual da fábrica.

(Herdado de ChannelFactory)
EndClose(IAsyncResult)

Conclui uma operação assíncrona para fechar um objeto de comunicação.

(Herdado de CommunicationObject)
EndOpen(IAsyncResult)

Conclui uma operação assíncrona para abrir um objeto de comunicação.

(Herdado de CommunicationObject)
EnsureOpened()

Abre a fábrica de canais atual se ela ainda não estiver aberta.

(Herdado de ChannelFactory)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Fault()

Faz com que um objeto de comunicação faça a transição do estado atual para o estado com falha.

(Herdado de CommunicationObject)
GetCommunicationObjectType()

Obtém o tipo de objeto de comunicação.

(Herdado de CommunicationObject)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetProperty<T>()

Retorna o objeto tipado solicitado, se presente, da camada apropriada na pilha de canais ou null, se ele não está presente.

(Herdado de ChannelFactory)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InitializeEndpoint(Binding, EndpointAddress)

Inicializa o ponto de extremidade de serviço da fábrica de canais com uma associação e endereço especificados.

(Herdado de ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Inicializa o ponto de extremidade de serviço da fábrica de canais com um ponto de extremidade especificado.

(Herdado de ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Inicializa o ponto de extremidade de serviço da fábrica de canais com uma configuração e endereço especificados.

(Herdado de ChannelFactory)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnAbort()

Finaliza a fábrica de canais interna da fábrica de canais atual.

(Herdado de ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Inicia uma operação close assíncrona na fábrica de canais interna da fábrica de canais atual que tem um objeto de estado associado a ela.

(Herdado de ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Inicia uma operação open assíncrona na fábrica de canais interna da fábrica de canais atual que tem um objeto de estado associado a ela.

(Herdado de ChannelFactory)
OnClose(TimeSpan)

Chama close na fábrica de canais interna com um tempo limite especificado para a conclusão da operação.

(Herdado de ChannelFactory)
OnClosed()

Chamada durante a transição de um objeto de comunicação para o estado de fechamento.

(Herdado de CommunicationObject)
OnClosing()

Chamada durante a transição de um objeto de comunicação para o estado de fechamento.

(Herdado de CommunicationObject)
OnEndClose(IAsyncResult)

Completa uma operação close assíncrona na fábrica de canais interna da fábrica de canais atual.

(Herdado de ChannelFactory)
OnEndOpen(IAsyncResult)

Completa uma operação open assíncrona na fábrica de canais interna da fábrica de canais atual.

(Herdado de ChannelFactory)
OnFaulted()

Insere o processamento em um objeto de comunicação depois que ela fez a transição para o estado de fechamento devido à invocação de uma operação fault síncrona.

(Herdado de CommunicationObject)
OnOpen(TimeSpan)

Chama open na fábrica de canais interna da fábrica de canais atual com um tempo limite especificado para a conclusão da operação.

(Herdado de ChannelFactory)
OnOpened()

Inicializa uma cópia somente leitura do objeto ClientCredentials para a fábrica de canais.

(Herdado de ChannelFactory)
OnOpening()

Cria a fábrica de canais interna da fábrica de canais atual.

(Herdado de ChannelFactory)
Open()

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto.

(Herdado de CommunicationObject)
Open(TimeSpan)

Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto em um intervalo de tempo especificado.

(Herdado de CommunicationObject)
ThrowIfDisposed()

Gera uma exceção se o objeto de comunicação é descartado.

(Herdado de CommunicationObject)
ThrowIfDisposedOrImmutable()

Gera uma exceção se o objeto de comunicação da propriedade State não estiver definido para o estado Created.

(Herdado de CommunicationObject)
ThrowIfDisposedOrNotOpen()

Gera uma exceção se o objeto de comunicação não estiver no estado Opened.

(Herdado de CommunicationObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Closed

Ocorre quando um objeto de comunicação entra no estado fechado.

(Herdado de CommunicationObject)
Closing

Ocorre quando um objeto de comunicação faz a transição para o estado fechado.

(Herdado de CommunicationObject)
Faulted

Ocorre quando um objeto de comunicação entra em um estado de falha.

(Herdado de CommunicationObject)
Opened

Ocorre quando um objeto de comunicação faz a transição para o estado aberto.

(Herdado de CommunicationObject)
Opening

Ocorre quando um objeto de comunicação faz a transição para o estado de abertura.

(Herdado de CommunicationObject)

Implantações explícitas de interface

IDisposable.Dispose()

Fecha a fábrica de canais atual.

(Herdado de ChannelFactory)

Aplica-se a