Partager via


DuplexClientBase<TChannel> Classe

Définition

Permet de créer un canal vers un service duplex et d’associer ce canal à un objet de rappel.

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)

Paramètres de type

TChannel

Type du canal à créer.

Héritage
DuplexClientBase<TChannel>

Exemples

L’exemple suivant montre l’utilisation dans le client d’un type de client WCF duplex, le SampleDuplexHelloClient, pour passer un nouvel objet System.ServiceModel.InstanceContext avec l’objet de rappel pour écouter les rappels.

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

Remarques

Utilisez la classe DuplexClientBase<TChannel> pour créer un canal vers un service qui spécifie un objet de rappel. L’objet DuplexClientBase<TChannel> encapsule un objet System.ServiceModel.DuplexChannelFactory<TChannel>, qui fournit la connectivité de l’objet WCF. Vous pouvez utiliser l’un ou l’autre type pour vous connecter à un service duplex. Pour plus d’informations sur les services duplex, consultez services duplex .

Remarque spéciale pour les utilisateurs C++ managés dérivant de cette classe :

  • Placez votre code de nettoyage dans (On)(Begin)Close (et/ou OnAbort), et non dans un destructeur.

  • Évitez les destructeurs : ils provoquent la génération automatique du compilateur IDisposable

  • Évitez les membres non référencés : ils peuvent provoquer la génération automatique du compilateur IDisposable

  • Évitez les finaliseurs ; mais si vous en incluez un, vous devez supprimer l’avertissement de build et appeler SuppressFinalize(Object) et le finaliseur lui-même de (On)(Begin)Close (et/ou OnAbort) afin d’émuler ce qui aurait été le comportement de IDisposable généré automatiquement.

Constructeurs

DuplexClientBase<TChannel>(InstanceContext)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel spécifié.

DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, de la liaison et de l’adresse de point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> avec l’objet de rappel et le point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(InstanceContext, String)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel et du nom de configuration spécifiés.

DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, du nom de configuration et de l’adresse de point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(InstanceContext, String, String)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, du nom de configuration et de l’adresse de point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(Object)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel spécifié.

DuplexClientBase<TChannel>(Object, Binding, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, de la liaison et de l’adresse de point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(Object, ServiceEndpoint)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> avec l’objet de rappel et le point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(Object, String)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel et du nom de configuration spécifiés.

DuplexClientBase<TChannel>(Object, String, EndpointAddress)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, du nom de configuration et de l’adresse de point de terminaison de service spécifiés.

DuplexClientBase<TChannel>(Object, String, String)

Initialise une nouvelle instance de la classe DuplexClientBase<TChannel> à l’aide de l’objet de rappel, du nom de configuration du point de terminaison et de l’adresse de point de terminaison de service spécifiées.

Propriétés

Channel

Obtient le canal interne utilisé pour envoyer des messages à différents points de terminaison de service configurés.

(Hérité de ClientBase<TChannel>)
ChannelFactory

Obtient l’objet ChannelFactory<TChannel> sous-jacent.

(Hérité de ClientBase<TChannel>)
ClientCredentials

Obtient les informations d’identification du client utilisées pour appeler une opération.

(Hérité de ClientBase<TChannel>)
Endpoint

Obtient le point de terminaison cible du service auquel le client WCF peut se connecter.

(Hérité de ClientBase<TChannel>)
InnerChannel

Obtient l’implémentation IClientChannel sous-jacente.

(Hérité de ClientBase<TChannel>)
InnerDuplexChannel

Obtient l’implémentation IClientChannel sous-jacente pour le canal duplex.

State

Obtient l’état actuel de l’objet ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)

Méthodes

Abort()

Provoque la transition immédiate de l’objet ClientBase<TChannel> de son état actuel vers l’état fermé.

(Hérité de ClientBase<TChannel>)
Close()

Provoque la transition de l’objet ClientBase<TChannel> de son état actuel vers l’état fermé.

(Hérité de ClientBase<TChannel>)
CloseAsync()

Permet de créer un canal vers un service duplex et d’associer ce canal à un objet de rappel.

(Hérité de ClientBase<TChannel>)
CreateChannel()

Retourne un canal au service associé à l’objet de rappel passé au constructeur.

CreateChannel()

Retourne un nouveau canal vers le service.

(Hérité de ClientBase<TChannel>)
DisplayInitializationUI()

Indique au canal interne d’afficher une interface utilisateur si une interface utilisateur est nécessaire pour initialiser le canal avant de l’utiliser.

(Hérité de ClientBase<TChannel>)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetDefaultValueForInitialization<T>()

Réplique le comportement du mot clé par défaut en C#.

(Hérité de ClientBase<TChannel>)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

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

Fournit la prise en charge de l’implémentation du modèle asynchrone basé sur les événements. Pour plus d’informations sur ce modèle, consultez Vue d’ensemble du modèle asynchrone basé sur les événements.

(Hérité de ClientBase<TChannel>)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
Open()

Provoque la transition de l’objet ClientBase<TChannel> de l’état créé vers l’état ouvert.

(Hérité de ClientBase<TChannel>)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

IAsyncDisposable.DisposeAsync()

Permet de créer un canal vers un service duplex et d’associer ce canal à un objet de rappel.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.BeginClose(AsyncCallback, Object)

Commence une opération asynchrone pour fermer le ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour fermer le ClientBase<TChannel> avec un délai d’expiration spécifié.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.BeginOpen(AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir l’objet ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Commence une opération asynchrone pour ouvrir l’objet ClientBase<TChannel> dans un intervalle de temps spécifié.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Close()

Provoque la transition d’un objet de communication de son état actuel vers l’état fermé.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Close(TimeSpan)

Provoque la transition de l’objet ClientBase<TChannel> de son état actuel vers l’état fermé.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Closed

Gestionnaire d’événements appelé lorsque l’objet ClientBase<TChannel> a passé de son état actuel à l’état fermé.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Closing

Gestionnaire d’événements appelé lorsque l’objet ClientBase<TChannel> passe de son état actuel à l’état fermé.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.EndClose(IAsyncResult)

Termine une opération asynchrone pour fermer l’objet ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.EndOpen(IAsyncResult)

Termine une opération asynchrone pour ouvrir l’objet ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Faulted

Gestionnaire d’événements appelé lorsqu’une erreur se produit lors de l’exécution d’une opération sur l’objet ClientBase<TChannel>.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Open()

Provoque la transition d’un objet de communication entre l’état créé et l’état ouvert.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Open(TimeSpan)

Provoque la transition de l’objet ClientBase<TChannel> de l’état créé vers l’état ouvert dans un intervalle de temps spécifié.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Opened

Gestionnaire d’événements appelé lorsque l’objet ClientBase<TChannel> passe de l’état créé à l’état ouvert.

(Hérité de ClientBase<TChannel>)
ICommunicationObject.Opening

Gestionnaire d’événements appelé lorsque l’objet ClientBase<TChannel> passe de l’état créé à l’état ouvert.

(Hérité de ClientBase<TChannel>)
IDisposable.Dispose()

Implémentation explicite de la méthode Dispose().

(Hérité de ClientBase<TChannel>)

Méthodes d’extension

ConfigureAwait(IAsyncDisposable, Boolean)

Configure la façon dont les attentes sur les tâches retournées à partir d’un jetable asynchrone sont effectuées.

S’applique à