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 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
Ejemplos
En el ejemplo siguiente se muestra el uso en el cliente de un tipo de cliente WCF dúplex, SampleDuplexHelloClient
, para 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. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura la forma en la que se realizan las expresiones await en las tareas devueltas desde un elemento asincrónico descartable. |
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de