DuplexClientBase<TChannel> Clase

Definición

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

generic <typename TChannel>
 where TChannel : classpublic ref class DuplexClientBase abstract : System::ServiceModel::ClientBase<TChannel>
public abstract 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)

Parámetros de tipo

TChannel

El tipo de canal que se vaya a crear.

Herencia
DuplexClientBase<TChannel>

Ejemplos

En el ejemplo siguiente se muestra el uso en el cliente de un tipo de cliente WCF dúplex, , SampleDuplexHelloClientpara pasar un nuevo System.ServiceModel.InstanceContext objeto con el objeto de devolución de llamada para escuchar devoluciones de llamada.

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

Comentarios

Utilice la clase DuplexClientBase<TChannel> para crear un canal a un servicio que especifica un objeto de devolución de llamada. El DuplexClientBase<TChannel> objeto encapsula un System.ServiceModel.DuplexChannelFactory<TChannel> objeto , que proporciona la conectividad para el objeto WCF. Puede utilizar cualquier tipo para conectar con un servicio dúplex. Para más información sobre los servicios dúplex, vea Duplex Services (Servicios dúplex).

Nota especial para los usuarios de C++ que deriven de esta clase:

  • Coloque su código de limpieza en (On)(Begin)Close (y/o OnAbort), no en un destructor.

  • Evite los destructores: hacen que el compilador genere automáticamente IDisposable

  • Evite los miembros sin referencia: pueden hacer que el compilador genere automáticamente IDisposable

  • Evite los finalizadores; pero si incluye uno, debería suprimir la advertencia de compilación y llamar a SuppressFinalize(Object) y al propio finalizador desde (On)(Begin)Close (y/o OnAbort) para emular lo que habría sido el comportamiento de IDisposable generado automáticamente.

Constructores

DuplexClientBase<TChannel>(InstanceContext)

Inicializa una instancia nueva de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas especificado.

DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el enlace y la dirección del extremo del servicio.

DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Inicializa una instancia nueva de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas y el punto de conexión del servicio especificados.

DuplexClientBase<TChannel>(InstanceContext, String)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas especificado y el nombre de configuración.

DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el nombre de configuración y la dirección del punto de conexión del servicio.

DuplexClientBase<TChannel>(InstanceContext, String, String)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el nombre de configuración y la dirección del punto de conexión del servicio.

DuplexClientBase<TChannel>(Object)

Inicializa una instancia nueva de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas especificado.

DuplexClientBase<TChannel>(Object, Binding, EndpointAddress)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el enlace y la dirección del extremo del servicio.

DuplexClientBase<TChannel>(Object, ServiceEndpoint)

Inicializa una instancia nueva de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas y el punto de conexión del servicio especificados.

DuplexClientBase<TChannel>(Object, String)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamadas especificado y el nombre de configuración.

DuplexClientBase<TChannel>(Object, String, EndpointAddress)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el nombre de configuración y la dirección del punto de conexión del servicio.

DuplexClientBase<TChannel>(Object, String, String)

Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> utilizando el objeto de devolución de llamada especificado, el nombre de configuración del punto de conexión y la dirección del punto de conexión del servicio.

Propiedades

Channel

Obtiene el canal interno utilizado para enviar mensajes a extremos de servicio configurados de distinta manera.

(Heredado de ClientBase<TChannel>)
ChannelFactory

Obtiene el objeto ChannelFactory<TChannel> subyacente.

(Heredado de ClientBase<TChannel>)
ClientCredentials

Obtiene las credenciales de cliente utilizadas para llamar a una operación.

(Heredado de ClientBase<TChannel>)
Endpoint

Obtiene el punto de conexión de destino para el servicio al que puede conectarse el cliente WCF.

(Heredado de ClientBase<TChannel>)
InnerChannel

Obtiene la implementación IClientChannel subyacente.

(Heredado de ClientBase<TChannel>)
InnerDuplexChannel

Obtiene la implementación IClientChannel subyacente para el canal dúplex.

State

Obtiene el estado actual del objeto ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)

Métodos

Abort()

Provoca que el objeto ClientBase<TChannel> pase inmediatamente de su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
Close()

Provoca que el objeto ClientBase<TChannel> pase de su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
CloseAsync()

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

(Heredado de ClientBase<TChannel>)
CreateChannel()

Devuelve un canal al servicio asociado al objeto de devolución de llamada pasado al constructor.

CreateChannel()

Devuelve un canal nuevo al servicio.

(Heredado de ClientBase<TChannel>)
DisplayInitializationUI()

Indica al canal interno que muestre una interfaz de usuario si se necesita para inicializar el canal antes de utilizarlo.

(Heredado de ClientBase<TChannel>)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetDefaultValueForInitialization<T>()

Replica el comportamiento de la palabra clave predeterminada en C#.

(Heredado de ClientBase<TChannel>)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Proporciona compatibilidad para implementar el modelo asincrónico basado en eventos Para más información sobre este patrón, consulte Información general sobre el modelo asincrónico basado en eventos.

(Heredado de ClientBase<TChannel>)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Open()

Provoca que el objeto ClientBase<TChannel> pase desde el estado creado al estado abierto.

(Heredado de ClientBase<TChannel>)
OpenAsync()

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

(Heredado de ClientBase<TChannel>)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IAsyncDisposable.DisposeAsync()

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.BeginClose(AsyncCallback, Object)

Comienza una operación asincrónica para cerrar ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para cerrar ClientBase<TChannel> con un tiempo de espera especificado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.BeginOpen(AsyncCallback, Object)

Comienza una operación asincrónica para abrir el objeto ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Comienza una operación asincrónica para abrir el objeto ClientBase<TChannel> dentro de un intervalo de tiempo especificado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Close()

Provoca que un objeto de comunicación pase de su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Close(TimeSpan)

Provoca que el objeto ClientBase<TChannel> pase de su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Closed

El controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> ha pasado desde su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Closing

El controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa desde su estado actual al estado cerrado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.EndClose(IAsyncResult)

Completa una operación asincrónica para cerrar el objeto ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.EndOpen(IAsyncResult)

Completa una operación asincrónica para abrir el objeto ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Faulted

El controlador de eventos que se invoca cuando se produce un error mientras se realiza una operación en el objeto ClientBase<TChannel>.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Open()

Hace que un objeto de comunicación pase del estado creado al estado abierto.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Open(TimeSpan)

Provoca que el objeto ClientBase<TChannel> pase del estado creado al estado abierto dentro de un intervalo de tiempo especificado.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Opened

El controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa desde el estado creado al estado abierto.

(Heredado de ClientBase<TChannel>)
ICommunicationObject.Opening

El controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa desde el estado creado al estado abierto.

(Heredado de ClientBase<TChannel>)
IDisposable.Dispose()

Implementación explícita del método Dispose().

(Heredado de ClientBase<TChannel>)

Métodos de extensión

CloseHelperAsync(ICommunicationObject, TimeSpan)

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Se utiliza para crear un canal a un servicio dúplex y asociar ese canal con un objeto de devolución de llamada.

Se aplica a