DuplexClientBase<TChannel> Classe
Definição
Usado para criar um canal para um serviço duplex e associar esse canal a um objeto de retorno de chamada.Used to create a channel to a duplex service and associate that channel with a callback object.
generic <typename TChannel>
where TChannel : classpublic ref class DuplexClientBase abstract : System::ServiceModel::ClientBase<TChannel>
generic <typename TChannel>
where TChannel : classpublic ref class DuplexClientBase : System::ServiceModel::ClientBase<TChannel>
public abstract class DuplexClientBase<TChannel> : System.ServiceModel.ClientBase<TChannel> where TChannel : class
public class DuplexClientBase<TChannel> : System.ServiceModel.ClientBase<TChannel> where TChannel : class
type DuplexClientBase<'Channel (requires 'Channel : null)> = class
inherit ClientBase<'Channel (requires 'Channel : null)>
Public MustInherit Class DuplexClientBase(Of TChannel)
Inherits ClientBase(Of TChannel)
Public Class DuplexClientBase(Of TChannel)
Inherits ClientBase(Of TChannel)
Parâmetros de tipo
- TChannel
O tipo de canal a ser criado.The type of the channel to be created.
- Herança
Exemplos
O exemplo a seguir mostra o uso no cliente de um tipo de cliente do WCF duplex, o SampleDuplexHelloClient , para passar um novo System.ServiceModel.InstanceContext objeto com o objeto de retorno de chamada para escutar retornos de chamada.The following example shows the use in the client of a duplex WCF client type, the SampleDuplexHelloClient, to pass a new System.ServiceModel.InstanceContext object with the callback object to listen for callbacks.
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Threading;
namespace Microsoft.WCF.Documentation
{
[CallbackBehaviorAttribute(
IncludeExceptionDetailInFaults= true,
UseSynchronizationContext=true,
ValidateMustUnderstand=true
)]
public class Client : SampleDuplexHelloCallback
{
AutoResetEvent waitHandle;
public Client()
{
waitHandle = new AutoResetEvent(false);
}
public void Run()
{
// Picks up configuration from the configuration file.
SampleDuplexHelloClient wcfClient
= new SampleDuplexHelloClient(new InstanceContext(this), "WSDualHttpBinding_SampleDuplexHello");
try
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Enter a greeting to send and press ENTER: ");
Console.Write(">>> ");
Console.ForegroundColor = ConsoleColor.Green;
string greeting = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Called service with: \r\n\t" + greeting);
wcfClient.Hello(greeting);
Console.WriteLine("Execution passes service call and moves to the WaitHandle.");
this.waitHandle.WaitOne();
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("Set was called.");
Console.Write("Press ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("ENTER");
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write(" to exit...");
Console.ReadLine();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.ReadLine();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.ReadLine();
}
}
public static void Main()
{
Client client = new Client();
client.Run();
}
public void Reply(string response)
{
Console.WriteLine("Received output.");
Console.WriteLine("\r\n\t" + response);
this.waitHandle.Set();
}
}
}
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.Threading
Namespace Microsoft.WCF.Documentation
<CallbackBehaviorAttribute(IncludeExceptionDetailInFaults:= True, UseSynchronizationContext:=True, ValidateMustUnderstand:=True)> _
Public Class Client
Implements SampleDuplexHelloCallback
Private waitHandle As AutoResetEvent
Public Sub New()
waitHandle = New AutoResetEvent(False)
End Sub
Public Sub Run()
' Picks up configuration from the configuration file.
Dim wcfClient As New SampleDuplexHelloClient(New InstanceContext(Me), "WSDualHttpBinding_SampleDuplexHello")
Try
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine("Enter a greeting to send and press ENTER: ")
Console.Write(">>> ")
Console.ForegroundColor = ConsoleColor.Green
Dim greeting As String = Console.ReadLine()
Console.ForegroundColor = ConsoleColor.White
Console.WriteLine("Called service with: " & Constants.vbCrLf & Constants.vbTab & greeting)
wcfClient.Hello(greeting)
Console.WriteLine("Execution passes service call and moves to the WaitHandle.")
Me.waitHandle.WaitOne()
Console.ForegroundColor = ConsoleColor.Blue
Console.WriteLine("Set was called.")
Console.Write("Press ")
Console.ForegroundColor = ConsoleColor.Red
Console.Write("ENTER")
Console.ForegroundColor = ConsoleColor.Blue
Console.Write(" to exit...")
Console.ReadLine()
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.ReadLine()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.ReadLine()
End Try
End Sub
Public Shared Sub Main()
Dim client As New Client()
client.Run()
End Sub
Public Sub Reply(ByVal response As String) Implements SampleDuplexHelloCallback.Reply
Console.WriteLine("Received output.")
Console.WriteLine(Constants.vbCrLf & Constants.vbTab & response)
Me.waitHandle.Set()
End Sub
End Class
End Namespace
Comentários
Use a DuplexClientBase<TChannel> classe para criar um canal para um serviço que especifica um objeto de retorno de chamada.Use the DuplexClientBase<TChannel> class to create a channel to a service that specifies a callback object. O DuplexClientBase<TChannel> objeto encapsula um System.ServiceModel.DuplexChannelFactory<TChannel> objeto, que fornece a conectividade para o objeto WCF.The DuplexClientBase<TChannel> object wraps a System.ServiceModel.DuplexChannelFactory<TChannel> object, which provides the connectivity for the WCF object. Você pode usar qualquer um dos tipos para se conectar a um serviço duplex.You can use either type to connect to a duplex service. Para obter mais informações sobre serviços duplex, consulte Serviços duplex.For more information about duplex services, see Duplex Services.
Observação especial para usuários gerenciados do C++ que derivam desta classe:Special note for Managed C++ users deriving from this class:
Coloque seu código de limpeza em (ativado) (início) fechar (e/ou OnAbort), não em um destruidor.Put your cleanup code in (On)(Begin)Close (and/or OnAbort), not in a destructor.
Evitar destruidores: eles fazem com que o compilador gere automaticamente IDisposableAvoid destructors: they cause the compiler to auto-generate IDisposable
Evitar membros de não referência: eles podem fazer com que o compilador gere automaticamente IDisposableAvoid non-reference members: they can cause the compiler to auto-generate IDisposable
Evitar finalizadores; Mas se você incluir um, deverá suprimir o aviso e a chamada de compilação SuppressFinalize(Object) e o próprio finalizador de (on) (Begin) Close (e/ou OnAbort) para emular o que teria sido o comportamento gerado automaticamente IDisposable .Avoid finalizers; but if you include one, you should suppress the build warning and call SuppressFinalize(Object) and the finalizer itself from (On)(Begin)Close (and/or OnAbort) in order to emulate what would have been the auto-generated IDisposable behavior.
Construtores
| DuplexClientBase<TChannel>(InstanceContext) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada especificado.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object. |
| DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, a associação e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, binding, and service endpoint address. |
| DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> com o objeto de retorno de chamada e o ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class with the specified callback object and service endpoint. |
| DuplexClientBase<TChannel>(InstanceContext, String) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o nome da configuração e objeto de retorno de chamada especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object and configuration name. |
| DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, o nome da configuração e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, configuration name, and service endpoint address. |
| DuplexClientBase<TChannel>(InstanceContext, String, String) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, o nome da configuração e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, configuration name, and service endpoint address. |
| DuplexClientBase<TChannel>(Object) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada especificado.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object. |
| DuplexClientBase<TChannel>(Object, Binding, EndpointAddress) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, a associação e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, binding, and service endpoint address. |
| DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> com o objeto de retorno de chamada e o ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class with the specified callback object and service endpoint. |
| DuplexClientBase<TChannel>(Object, String) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o nome da configuração e objeto de retorno de chamada especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object and configuration name. |
| DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, o nome da configuração e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, configuration name, and service endpoint address. |
| DuplexClientBase<TChannel>(Object, String, String) |
Inicializa uma nova instância da classe DuplexClientBase<TChannel> usando o objeto de retorno de chamada, o nome da configuração do ponto de extremidade e o endereço do ponto de extremidade de serviço especificados.Initializes a new instance of the DuplexClientBase<TChannel> class using the specified callback object, endpoint configuration name, and service endpoint address. |
Propriedades
| Channel |
Obtém o canal interno usado para enviar mensagens para pontos de extremidade de serviço configurados diferentemente.Gets the inner channel used to send messages to variously configured service endpoints. (Herdado de ClientBase<TChannel>) |
| ChannelFactory |
Obtém o objeto ChannelFactory<TChannel> subjacente.Gets the underlying ChannelFactory<TChannel> object. (Herdado de ClientBase<TChannel>) |
| ClientCredentials |
O cliente obtém as credenciais usadas para chamar uma operação.Gets the client credentials used to call an operation. (Herdado de ClientBase<TChannel>) |
| Endpoint |
Obtém o ponto de extremidade de destino para o serviço ao qual o cliente do WCF pode se conectar.Gets the target endpoint for the service to which the WCF client can connect. (Herdado de ClientBase<TChannel>) |
| InnerChannel |
Obtém a implementação IClientChannel subjacente.Gets the underlying IClientChannel implementation. (Herdado de ClientBase<TChannel>) |
| InnerDuplexChannel |
Obtém a implantação de IClientChannel subjacente do canal dúplex.Gets the underlying IClientChannel implementation for the duplex channel. |
| State |
Obtém o estado atual do objeto ClientBase<TChannel>.Gets the current state of the ClientBase<TChannel> object. (Herdado de ClientBase<TChannel>) |
Métodos
| Abort() |
Faz com que o objeto ClientBase<TChannel> faça imediatamente a transição de seu estado atual para o estado fechado.Causes the ClientBase<TChannel> object to transition immediately from its current state into the closed state. (Herdado de ClientBase<TChannel>) |
| Close() |
Faz com que o objeto ClientBase<TChannel> faça a transição de seu estado atual para o estado fechado.Causes the ClientBase<TChannel> object to transition from its current state into the closed state. (Herdado de ClientBase<TChannel>) |
| CreateChannel() |
Retorna um canal para o serviço associado ao objeto de retorno de chamada passado para o construtor.Returns a channel to the service associated with the callback object passed to the constructor. |
| CreateChannel() |
Retorna um novo canal para o serviço.Returns a new channel to the service. (Herdado de ClientBase<TChannel>) |
| DisplayInitializationUI() |
Instrui o canal interno a exibir uma interface do usuário, se uma é requerida para inicializar o canal antes de usá-lo.Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. (Herdado de ClientBase<TChannel>) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object. (Herdado de Object) |
| GetDefaultValueForInitialization<T>() |
Replica o comportamento da palavra-chave default em C#.Replicates the behavior of the default keyword in C#. (Herdado de ClientBase<TChannel>) |
| GetHashCode() |
Serve como a função de hash padrão.Serves as the default hash function. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual.Gets the Type of the current instance. (Herdado de Object) |
| InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object) |
Fornece suporte para implementar o padrão assíncrono baseado em evento.Provides support for implementing the event-based asynchronous pattern. Para mais informações sobre esse padrão, consulte Visão geral sobre o padrão assíncrono baseado em evento.For more information about this pattern, see Event-based Asynchronous Pattern Overview. (Herdado de ClientBase<TChannel>) |
| MemberwiseClone() |
Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object. (Herdado de Object) |
| Open() |
Faz com que o objeto ClientBase<TChannel> faça a transição do estado criado para o estado aberto.Causes the ClientBase<TChannel> object to transition from the created state into the opened state. (Herdado de ClientBase<TChannel>) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object. (Herdado de Object) |
Implantações explícitas de interface
| ICommunicationObject.BeginClose(AsyncCallback, Object) |
Começa uma operação assíncrona para fechar o ClientBase<TChannel>.Begins an asynchronous operation to close the ClientBase<TChannel>. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para fechar o ClientBase<TChannel> com um tempo limite especificado.Begins an asynchronous operation to close the ClientBase<TChannel> with a specified timeout. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.BeginOpen(AsyncCallback, Object) |
Começa uma operação assíncrona para abrir o objeto ClientBase<TChannel>.Begins an asynchronous operation to open the ClientBase<TChannel> object. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object) |
Inicia uma operação assíncrona para abrir o objeto ClientBase<TChannel> dentro de um intervalo de tempo especificado.Begins an asynchronous operation to open the ClientBase<TChannel> object within a specified interval of time. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Close() |
Faz com que um objeto de comunicação faça a transição do estado atual para o estado fechado.Causes a communication object to transition from its current state into the closed state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Close(TimeSpan) |
Faz com que o objeto ClientBase<TChannel> faça a transição de seu estado atual para o estado fechado.Causes the ClientBase<TChannel> object to transition from its current state into the closed state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Closed |
O manipulador de eventos invocado quando o objeto ClientBase<TChannel> faz uma transição do estado criado para o estado aberto.The event handler that is invoked when the ClientBase<TChannel> object has transitioned from its current state to the closed state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Closing |
O manipulador de eventos invocado quando o objeto ClientBase<TChannel> faz uma transição do estado criado para o estado aberto.The event handler that is invoked when the ClientBase<TChannel> object transitions from its current state to the closed state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.EndClose(IAsyncResult) |
Conclui uma operação assíncrona para fechar o objeto ClientBase<TChannel>.Completes an asynchronous operation to close the ClientBase<TChannel> object. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.EndOpen(IAsyncResult) |
Conclui uma operação assíncrona para abrir o objeto ClientBase<TChannel>.Completes an asynchronous operation to open the ClientBase<TChannel> object. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Faulted |
O manipulador de eventos que é invocado quando ocorre uma falha ao executar uma operação no objeto ClientBase<TChannel>.The event handler that is invoked when a fault occurs while performing an operation on the ClientBase<TChannel> object. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Open() |
Faz com que um objeto de comunicação faça a transição do estado criado para o estado aberto.Causes a communication object to transition from the created state into the opened state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Open(TimeSpan) |
Faz com que o objeto ClientBase<TChannel> faça a transição do estado criado para o estado aberto em um intervalo de tempo especificado.Causes the ClientBase<TChannel> object to transition from the created state into the opened state within a specified interval of time. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Opened |
O manipulador de eventos invocado quando o objeto ClientBase<TChannel> faz uma transição do estado criado para o estado aberto.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state. (Herdado de ClientBase<TChannel>) |
| ICommunicationObject.Opening |
O manipulador de eventos invocado quando o objeto ClientBase<TChannel> faz uma transição do estado criado para o estado aberto.The event handler that is invoked when the ClientBase<TChannel> object transitions from the created state to the opened state. (Herdado de ClientBase<TChannel>) |
| IDisposable.Dispose() |
A implementação explícita do método Dispose().Explicit implementation of the Dispose() method. (Herdado de ClientBase<TChannel>) |