DuplexClientBase<TChannel> Klasa

Definicja

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

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)

Parametry typu

TChannel

Typ kanału do utworzenia.

Dziedziczenie
DuplexClientBase<TChannel>

Przykłady

W poniższym przykładzie pokazano użycie w kliencie typu klienta usługi WCF, parametr SampleDuplexHelloClient, aby przekazać nowy System.ServiceModel.InstanceContext obiekt z obiektem wywołania zwrotnego w celu nasłuchiwania wywołań zwrotnych.

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

Uwagi

DuplexClientBase<TChannel> Użyj klasy , aby utworzyć kanał w usłudze, która określa obiekt wywołania zwrotnego. Obiekt DuplexClientBase<TChannel> opakowuje System.ServiceModel.DuplexChannelFactory<TChannel> obiekt, który zapewnia łączność dla obiektu WCF. Możesz użyć dowolnego typu, aby nawiązać połączenie z usługą dwukierunkową. Aby uzyskać więcej informacji na temat usług dwukierunkowych, zobacz Usługi dwukierunkowe.

Uwaga specjalna dla użytkowników zarządzanego języka C++ pochodzącego z tej klasy:

  • Umieść kod oczyszczania (On)(Begin)Close (i/lub OnAbort), a nie w destruktorze.

  • Unikaj destruktorów: powodują one automatyczne generowanie kompilatora IDisposable

  • Unikaj elementów członkowskich innych niż odwołania: mogą powodować automatyczne generowanie kompilatora IDisposable

  • Unikaj finalizatorów; ale w przypadku dołączenia należy pominąć ostrzeżenie i wywołanie SuppressFinalize(Object) kompilacji oraz sam finalizator z (On)(Begin)Close (i/lub OnAbort) w celu emulacji tego, co byłoby generowane IDisposable automatycznie.

Konstruktory

DuplexClientBase<TChannel>(InstanceContext)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego.

DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, powiązania i adresu punktu końcowego usługi.

DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy z określonym obiektem wywołania zwrotnego i punktem końcowym usługi.

DuplexClientBase<TChannel>(InstanceContext, String)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego i nazwy konfiguracji.

DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi.

DuplexClientBase<TChannel>(InstanceContext, String, String)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi.

DuplexClientBase<TChannel>(Object)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego.

DuplexClientBase<TChannel>(Object, Binding, EndpointAddress)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, powiązania i adresu punktu końcowego usługi.

DuplexClientBase<TChannel>(Object, ServiceEndpoint)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy z określonym obiektem wywołania zwrotnego i punktem końcowym usługi.

DuplexClientBase<TChannel>(Object, String)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego i nazwy konfiguracji.

DuplexClientBase<TChannel>(Object, String, EndpointAddress)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji i adresu punktu końcowego usługi.

DuplexClientBase<TChannel>(Object, String, String)

Inicjuje DuplexClientBase<TChannel> nowe wystąpienie klasy przy użyciu określonego obiektu wywołania zwrotnego, nazwy konfiguracji punktu końcowego i adresu punktu końcowego usługi.

Właściwości

Channel

Pobiera kanał wewnętrzny używany do wysyłania komunikatów do różnych skonfigurowanych punktów końcowych usługi.

(Odziedziczone po ClientBase<TChannel>)
ChannelFactory

Pobiera obiekt bazowy ChannelFactory<TChannel> .

(Odziedziczone po ClientBase<TChannel>)
ClientCredentials

Pobiera poświadczenia klienta używane do wywoływania operacji.

(Odziedziczone po ClientBase<TChannel>)
Endpoint

Pobiera docelowy punkt końcowy dla usługi, z którą klient WCF może nawiązać połączenie.

(Odziedziczone po ClientBase<TChannel>)
InnerChannel

Pobiera podstawową IClientChannel implementację.

(Odziedziczone po ClientBase<TChannel>)
InnerDuplexChannel

Pobiera podstawową IClientChannel implementację kanału dwukierunkowego.

State

Pobiera bieżący stan ClientBase<TChannel> obiektu.

(Odziedziczone po ClientBase<TChannel>)

Metody

Abort()

ClientBase<TChannel> Powoduje natychmiastowe przejście obiektu z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
Close()

ClientBase<TChannel> Powoduje przejście obiektu z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
CloseAsync()

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

(Odziedziczone po ClientBase<TChannel>)
CreateChannel()

Zwraca kanał do usługi skojarzonej z obiektem wywołania zwrotnego przekazanym do konstruktora.

CreateChannel()

Zwraca nowy kanał do usługi.

(Odziedziczone po ClientBase<TChannel>)
DisplayInitializationUI()

Instruuje wewnętrzny kanał, aby wyświetlić interfejs użytkownika, jeśli jest wymagany do zainicjowania kanału przed jego użyciem.

(Odziedziczone po ClientBase<TChannel>)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetDefaultValueForInitialization<T>()

Replikuje zachowanie domyślnego słowa kluczowego w języku C#.

(Odziedziczone po ClientBase<TChannel>)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Zapewnia obsługę implementowania wzorca asynchronicznego opartego na zdarzeniach. Aby uzyskać więcej informacji na temat tego wzorca, zobacz Omówienie wzorca asynchronicznego opartego na zdarzeniach.

(Odziedziczone po ClientBase<TChannel>)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Open()

ClientBase<TChannel> Powoduje przejście obiektu z utworzonego stanu do stanu otwartego.

(Odziedziczone po ClientBase<TChannel>)
OpenAsync()

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

(Odziedziczone po ClientBase<TChannel>)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IAsyncDisposable.DisposeAsync()

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.BeginClose(AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zamknąć ClientBase<TChannel>obiekt .

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zamknąć ClientBase<TChannel> element z określonym limitem czasu.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.BeginOpen(AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt w określonym przedziale czasu.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Close()

Powoduje przejście obiektu komunikacji z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Close(TimeSpan)

ClientBase<TChannel> Powoduje przejście obiektu z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Closed

Procedura obsługi zdarzeń wywoływana po przejściu ClientBase<TChannel> obiektu z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Closing

Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi z bieżącego stanu do stanu zamkniętego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.EndClose(IAsyncResult)

Kończy operację asynchroniczną, aby zamknąć ClientBase<TChannel> obiekt.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.EndOpen(IAsyncResult)

Kończy operację asynchroniczną, aby otworzyć ClientBase<TChannel> obiekt.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Faulted

Procedura obsługi zdarzeń wywoływana w przypadku wystąpienia błędu podczas wykonywania operacji na ClientBase<TChannel> obiekcie.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Open()

Powoduje przejście obiektu komunikacji z utworzonego stanu do stanu otwartego.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Open(TimeSpan)

ClientBase<TChannel> Powoduje przejście obiektu z utworzonego stanu do stanu otwartego w określonym przedziale czasu.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Opened

Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi ze stanu utworzonego do otwartego stanu.

(Odziedziczone po ClientBase<TChannel>)
ICommunicationObject.Opening

Procedura obsługi zdarzeń wywoływana, gdy ClientBase<TChannel> obiekt przechodzi ze stanu utworzonego do otwartego stanu.

(Odziedziczone po ClientBase<TChannel>)
IDisposable.Dispose()

Jawna implementacja Dispose() metody.

(Odziedziczone po ClientBase<TChannel>)

Metody rozszerzania

CloseHelperAsync(ICommunicationObject, TimeSpan)

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Służy do tworzenia kanału w usłudze dwukierunkowej i kojarzenie tego kanału z obiektem wywołania zwrotnego.

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje sposób oczekiwania na zadania zwracane z asynchronicznego jednorazowego wykonania.

Dotyczy