DuplexClientBase<TChannel> Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se usa para crear un canal a un servicio dúplex y asociar ese canal a 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
Tipo del canal que se va a crear.
- Herencia
Ejemplos
En el ejemplo siguiente se muestra el uso en el cliente de un tipo de cliente WCF dúplex, el SampleDuplexHelloClient
, para pasar un nuevo objeto System.ServiceModel.InstanceContext 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
Use la clase DuplexClientBase<TChannel> para crear un canal en un servicio que especifique un objeto de devolución de llamada. El objeto DuplexClientBase<TChannel> encapsula un objeto System.ServiceModel.DuplexChannelFactory<TChannel>, que proporciona la conectividad para el objeto WCF. Puede usar cualquier tipo para conectarse a un servicio dúplex. Para obtener más información sobre los servicios dúplex, consulte Servicios dúplex.
Nota especial para los usuarios de C++ administrados derivados de esta clase:
Coloque el código de limpieza en (On)(Begin)Close (and/or OnAbort), no en un destructor.
Evitar destructores: hacen que el compilador genere automáticamente IDisposable
Evitar miembros que no son de referencia: pueden hacer que el compilador genere automáticamente IDisposable
Evitar finalizadores; pero si incluye uno, debe suprimir la advertencia de compilación y llamar a SuppressFinalize(Object) y al finalizador de (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 nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada especificado. |
DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el enlace y la dirección del punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamada y el punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(InstanceContext, String) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada y el nombre de configuración especificados. |
DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el nombre de configuración y la dirección del punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(InstanceContext, String, String) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el nombre de configuración y la dirección del punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(Object) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada especificado. |
DuplexClientBase<TChannel>(Object, Binding, EndpointAddress) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el enlace y la dirección del punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(Object, ServiceEndpoint) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> con el objeto de devolución de llamada y el punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(Object, String) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada y el nombre de configuración especificados. |
DuplexClientBase<TChannel>(Object, String, EndpointAddress) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el nombre de configuración y la dirección del punto de conexión de servicio especificados. |
DuplexClientBase<TChannel>(Object, String, String) |
Inicializa una nueva instancia de la clase DuplexClientBase<TChannel> mediante el objeto de devolución de llamada, el nombre de configuración del punto de conexión y la dirección del punto de conexión de servicio especificados. |
Propiedades
Channel |
Obtiene el canal interno que se usa para enviar mensajes a varios puntos de conexión de servicio configurados. (Heredado de ClientBase<TChannel>) |
ChannelFactory |
Obtiene el objeto ChannelFactory<TChannel> subyacente. (Heredado de ClientBase<TChannel>) |
ClientCredentials |
Obtiene las credenciales de cliente usadas para llamar a una operación. (Heredado de ClientBase<TChannel>) |
Endpoint |
Obtiene el punto de conexión de destino del servicio al que puede conectarse el cliente WCF. (Heredado de ClientBase<TChannel>) |
InnerChannel |
Obtiene la implementación del IClientChannel subyacente. (Heredado de ClientBase<TChannel>) |
InnerDuplexChannel |
Obtiene la implementación de IClientChannel subyacente para el canal dúplex. |
State |
Obtiene el estado actual del objeto ClientBase<TChannel>. (Heredado de ClientBase<TChannel>) |
Métodos
Abort() |
Hace que el objeto ClientBase<TChannel> realice la transición inmediatamente de su estado actual al estado cerrado. (Heredado de ClientBase<TChannel>) |
Close() |
Hace que el objeto ClientBase<TChannel> pase de su estado actual al estado cerrado. (Heredado de ClientBase<TChannel>) |
CloseAsync() |
Se usa para crear un canal a un servicio dúplex y asociar ese canal a 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 nuevo canal al servicio. (Heredado de ClientBase<TChannel>) |
DisplayInitializationUI() |
Indica al canal interno que muestre una interfaz de usuario si es necesario inicializar el canal antes de usarlo. (Heredado de ClientBase<TChannel>) |
Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
GetDefaultValueForInitialization<T>() |
Replica el comportamiento de la palabra clave predeterminada en C#. (Heredado de ClientBase<TChannel>) |
GetHashCode() |
Actúa como 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 patrón asincrónico basado en eventos. Para obtener más información sobre este patrón, consulte Introducción al patrón asincrónico basado en eventos. (Heredado de ClientBase<TChannel>) |
MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
Open() |
Hace que el objeto ClientBase<TChannel> realice la transición del estado creado al estado abierto. (Heredado de ClientBase<TChannel>) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
IAsyncDisposable.DisposeAsync() |
Se usa para crear un canal a un servicio dúplex y asociar ese canal a un objeto de devolución de llamada. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.BeginClose(AsyncCallback, Object) |
Inicia una operación asincrónica para cerrar el ClientBase<TChannel>. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica para cerrar el 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() |
Hace que un objeto de comunicación pase de su estado actual al estado cerrado. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.Close(TimeSpan) |
Hace que el objeto ClientBase<TChannel> pase de su estado actual al estado cerrado. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.Closed |
Controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> ha pasado de su estado actual al estado cerrado. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.Closing |
Controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa de 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 |
Controlador de eventos que se invoca cuando se produce un error al realizar 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) |
Hace 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 |
Controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa del estado creado al estado abierto. (Heredado de ClientBase<TChannel>) |
ICommunicationObject.Opening |
Controlador de eventos que se invoca cuando el objeto ClientBase<TChannel> pasa del 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
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura cómo se realizarán las esperas en las tareas devueltas desde un descartable asincrónico. |