ChannelFactory Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria e gerencia os canais usados pelos clientes para enviar mensagens para pontos de extremidade de serviço.
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::Channels::IChannelFactory
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IAsyncDisposable, IDisposable, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.Channels.IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IAsyncDisposable, IDisposable, System.ServiceModel.Channels.IChannelFactory
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
interface IAsyncDisposable
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IChannelFactory, IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IAsyncDisposable, IChannelFactory, IDisposable
- Herança
- Derivado
- Implementações
Exemplos
O exemplo de código a seguir mostra como inserir programaticamente um comportamento do cliente antes da criação do objeto de canal pela fábrica.
public class Client
{
public static void Main()
{
try
{
// Picks up configuration from the config file.
ChannelFactory<ISampleServiceChannel> factory
= new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");
// Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());
ISampleServiceChannel wcfClientChannel = factory.CreateChannel();
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClientChannel.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.Read();
}
catch (FaultException<SampleFault> fault)
{
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
Console.Read();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.Read();
}
}
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub
Comentários
As fábricas de canais que implementam a interface IChannelFactory e seus canais associados geralmente são usadas pelos iniciadores de um padrão de comunicação. As fábricas de ouvintes que implementam a interface IChannelListener e seus ouvintes associados fornecem os mecanismos com os quais os canais são aceitos para comunicações.
Essa classe não faz parte do modelo de canal, mas do modelo de serviço. O método CreateFactory fornece os meios para criar um IChannelFactory para um ponto de extremidade de serviço. Use-o para construir um cliente que se conecte a um contrato de interface no serviço sem usar metadados ou política.
Nota
Definir ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
para TokenImpersonationLevel.Anonymous
sempre resulta em um logon anônimo, independentemente do nível de representação.
Observação especial para usuários C++ gerenciados derivados dessa classe:
Coloque seu código de limpeza em (Ativado)(Begin)Fechar (e/ou OnAbort), não em um destruidor.
Evite destruidores; eles fazem com que o compilador gere automaticamente IDisposable.
Evite membros não referenciados; eles podem fazer com que o compilador gere automaticamente IDisposable.
Evite usar um finalizador; mas, se você incluir um, deverá suprimir o aviso de build e chamar SuppressFinalize(Object) e o próprio finalizador de (On)(Begin)Close (e/ou OnAbort) para emular o que teria sido o comportamento de IDisposable gerado automaticamente.
Ao adicionar comportamentos programaticamente, o comportamento é adicionado à propriedade Behaviors
apropriada no ChannelFactory antes da criação de qualquer canal. Consulte a seção de exemplo para obter um exemplo de código.
Construtores
ChannelFactory() |
Inicializa uma nova instância da classe ChannelFactory. |
Propriedades
Credentials |
Obtém as credenciais usadas pelos clientes para comunicar um ponto de extremidade de serviço pelos canais produzidos pela fábrica. |
DefaultCloseTimeout |
Obtém o intervalo de tempo padrão fornecido para que uma operação de fechamento seja concluída. |
DefaultOpenTimeout |
Obtém o intervalo de tempo padrão fornecido para uma operação aberta ser concluída. |
Endpoint |
Obtém o ponto de extremidade de serviço ao qual os canais produzidos pela fábrica se conectam. |
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 de 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 imediatamente de seu 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. |
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 de seu estado atual para o estado fechado. (Herdado de CommunicationObject) |
Close(TimeSpan) |
Faz com que um objeto de comunicação faça a transição de seu estado atual para o estado fechado dentro de um intervalo de tempo especificado. (Herdado de CommunicationObject) |
CreateDescription() |
Quando implementado em uma classe derivada, cria uma descrição do ponto de extremidade de serviço associado à fábrica de canais. |
CreateFactory() |
Cria a fábrica de canais para o ponto de extremidade atual da fábrica. |
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() |
Abrirá a fábrica de canais atual se ela ainda não estiver aberta. |
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 de seu 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 digitado solicitado, se presente, da camada apropriada na pilha do canal ou |
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 um endereço especificados. |
InitializeEndpoint(ServiceEndpoint) |
Inicializa o ponto de extremidade de serviço da fábrica de canais com um ponto de extremidade especificado. |
InitializeEndpoint(String, EndpointAddress) |
Inicializa o ponto de extremidade de serviço da fábrica de canais com um endereço e uma configuração especificados. |
MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
OnAbort() |
Encerra a fábrica de canais interno da fábrica de canais atual. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Inicia uma operação de fechamento assíncrona na fábrica do canal interno da fábrica de canais atual que tem um objeto de estado associado a ela. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Inicia uma operação de abertura assíncrona na fábrica de canais interno da fábrica de canais atual que tem um objeto de estado associado a ela. |
OnClose(TimeSpan) |
As chamadas fecham na fábrica de canais internos com um tempo limite especificado para a conclusão da operação. |
OnClosed() |
Invocado durante a transição de um objeto de comunicação para o estado de fechamento. (Herdado de CommunicationObject) |
OnClosing() |
Invocado durante a transição de um objeto de comunicação para o estado de fechamento. (Herdado de CommunicationObject) |
OnEndClose(IAsyncResult) |
Conclui uma operação de fechamento assíncrona na fábrica de canais interno da fábrica de canais atual. |
OnEndOpen(IAsyncResult) |
Conclui uma operação aberta assíncrona na fábrica de canais interno da fábrica de canais atual. |
OnFaulted() |
Insere o processamento em um objeto de comunicação depois que ele faz a transição para o estado com falha devido à invocação de uma operação de falha síncrona. (Herdado de CommunicationObject) |
OnOpen(TimeSpan) |
As chamadas são abertas na fábrica de canais interno da fábrica de canais atual com um tempo limite especificado para a conclusão da operação. |
OnOpened() |
Inicializa uma cópia somente leitura do objeto ClientCredentials para a fábrica de canais. |
OnOpening() |
Cria a fábrica de canais internos para o canal atual. |
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 dentro de um intervalo de tempo especificado. (Herdado de CommunicationObject) |
ThrowIfDisposed() |
Gerará uma exceção se o objeto de comunicação for descartado. (Herdado de CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Gerará uma exceção se o objeto de comunicação a propriedade State não estiver definida como 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 faz a transição para o estado fechado. (Herdado de CommunicationObject) |
Closing |
Ocorre quando um objeto de comunicação faz a transição para o estado de fechamento. (Herdado de CommunicationObject) |
Faulted |
Ocorre quando um objeto de comunicação faz a transição para o estado com 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
IAsyncDisposable.DisposeAsync() |
Cria e gerencia os canais usados pelos clientes para enviar mensagens para pontos de extremidade de serviço. |
IDisposable.Dispose() |
Fecha a fábrica de canais atual. |
Métodos de Extensão
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura como as esperas nas tarefas retornadas de um descartável assíncrono serão executadas. |