DuplexClientBase<TChannel> Kelas

Definisi

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

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)

Jenis parameter

TChannel

Jenis saluran yang akan dibuat.

Warisan
DuplexClientBase<TChannel>

Contoh

Contoh berikut menunjukkan penggunaan dalam klien jenis klien WCF dupleks, SampleDuplexHelloClient, untuk meneruskan objek baru System.ServiceModel.InstanceContext dengan objek panggilan balik untuk mendengarkan panggilan balik.

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

Keterangan

DuplexClientBase<TChannel> Gunakan kelas untuk membuat saluran ke layanan yang menentukan objek panggilan balik. Objek DuplexClientBase<TChannel> membungkus System.ServiceModel.DuplexChannelFactory<TChannel> objek , yang menyediakan konektivitas untuk objek WCF. Anda dapat menggunakan salah satu jenis untuk menyambungkan ke layanan dupleks. Untuk informasi selengkapnya tentang layanan duplex, baca Layanan Duplex.

Catatan khusus untuk pengguna C++ Terkelola yang berasal dari kelas ini:

  • Masukkan kode pembersihan Anda di (On)(Begin)Close (dan/atau OnAbort), bukan di destruktor.

  • Hindari destruktor: pengompilasi menyebabkan pengompilasi dibuat secara otomatis IDisposable

  • Hindari anggota non-referensi: mereka dapat menyebabkan pengompilasi dibuat secara otomatis IDisposable

  • Hindari finalizer; tetapi jika Anda menyertakannya, Anda harus menekan peringatan build dan panggilan SuppressFinalize(Object) dan finalizer itu sendiri dari (On)(Begin)Close (dan/atau OnAbort) untuk meniru apa yang akan menjadi perilaku yang dihasilkan IDisposable secara otomatis.

Konstruktor

DuplexClientBase<TChannel>(InstanceContext)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik yang ditentukan.

DuplexClientBase<TChannel>(InstanceContext, Binding, EndpointAddress)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik, pengikatan, dan alamat titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(InstanceContext, ServiceEndpoint)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas dengan objek panggilan balik dan titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(InstanceContext, String)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik dan nama konfigurasi yang ditentukan.

DuplexClientBase<TChannel>(InstanceContext, String, EndpointAddress)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik, nama konfigurasi, dan alamat titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(InstanceContext, String, String)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik, nama konfigurasi, dan alamat titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(Object)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik yang ditentukan.

DuplexClientBase<TChannel>(Object, Binding, EndpointAddress)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik, pengikatan, dan alamat titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(Object, ServiceEndpoint)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas dengan objek panggilan balik dan titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(Object, String)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik dan nama konfigurasi yang ditentukan.

DuplexClientBase<TChannel>(Object, String, EndpointAddress)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik, nama konfigurasi, dan alamat titik akhir layanan yang ditentukan.

DuplexClientBase<TChannel>(Object, String, String)

Menginisialisasi instans DuplexClientBase<TChannel> baru kelas menggunakan objek panggilan balik yang ditentukan, nama konfigurasi titik akhir, dan alamat titik akhir layanan.

Properti

Channel

Mendapatkan saluran dalam yang digunakan untuk mengirim pesan ke berbagai titik akhir layanan yang dikonfigurasi.

(Diperoleh dari ClientBase<TChannel>)
ChannelFactory

Mendapatkan objek yang mendasar ChannelFactory<TChannel> .

(Diperoleh dari ClientBase<TChannel>)
ClientCredentials

Mendapatkan kredensial klien yang digunakan untuk memanggil operasi.

(Diperoleh dari ClientBase<TChannel>)
Endpoint

Mendapatkan titik akhir target untuk layanan yang dapat disambungkan oleh klien WCF.

(Diperoleh dari ClientBase<TChannel>)
InnerChannel

Mendapatkan implementasi yang mendasar IClientChannel .

(Diperoleh dari ClientBase<TChannel>)
InnerDuplexChannel

Mendapatkan implementasi yang mendasar IClientChannel untuk saluran dupleks.

State

Mendapatkan status ClientBase<TChannel> objek saat ini.

(Diperoleh dari ClientBase<TChannel>)

Metode

Abort()

ClientBase<TChannel> Menyebabkan objek segera beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
Close()

ClientBase<TChannel> Menyebabkan objek beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
CloseAsync()

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

(Diperoleh dari ClientBase<TChannel>)
CreateChannel()

Mengembalikan saluran ke layanan yang terkait dengan objek panggilan balik yang diteruskan ke konstruktor.

CreateChannel()

Mengembalikan saluran baru ke layanan.

(Diperoleh dari ClientBase<TChannel>)
DisplayInitializationUI()

Menginstruksikan saluran dalam untuk menampilkan antarmuka pengguna jika diperlukan untuk menginisialisasi saluran sebelum menggunakannya.

(Diperoleh dari ClientBase<TChannel>)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetDefaultValueForInitialization<T>()

Mereplikasi perilaku kata kunci default di C#.

(Diperoleh dari ClientBase<TChannel>)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InvokeAsync(ClientBase<TChannel>.BeginOperationDelegate, Object[], ClientBase<TChannel>.EndOperationDelegate, SendOrPostCallback, Object)

Menyediakan dukungan untuk menerapkan pola asinkron berbasis peristiwa. Untuk informasi selengkapnya tentang pola ini, lihat Gambaran Umum Pola Asinkron berbasis peristiwa.

(Diperoleh dari ClientBase<TChannel>)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
Open()

ClientBase<TChannel> Menyebabkan objek beralih dari status yang dibuat ke status dibuka.

(Diperoleh dari ClientBase<TChannel>)
OpenAsync()

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

(Diperoleh dari ClientBase<TChannel>)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IAsyncDisposable.DisposeAsync()

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.BeginClose(AsyncCallback, Object)

Memulai operasi asinkron untuk menutup ClientBase<TChannel>.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.BeginClose(TimeSpan, AsyncCallback, Object)

Memulai operasi asinkron untuk menutup ClientBase<TChannel> dengan batas waktu yang ditentukan.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.BeginOpen(AsyncCallback, Object)

Memulai operasi asinkron untuk membuka ClientBase<TChannel> objek.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.BeginOpen(TimeSpan, AsyncCallback, Object)

Memulai operasi asinkron untuk membuka ClientBase<TChannel> objek dalam interval waktu tertentu.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Close()

Menyebabkan objek komunikasi beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Close(TimeSpan)

ClientBase<TChannel> Menyebabkan objek beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Closed

Penanganan aktivitas yang dipanggil ketika ClientBase<TChannel> objek telah beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Closing

Penanganan aktivitas yang dipanggil ketika ClientBase<TChannel> objek beralih dari statusnya saat ini ke status tertutup.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.EndClose(IAsyncResult)

Menyelesaikan operasi asinkron untuk menutup ClientBase<TChannel> objek.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.EndOpen(IAsyncResult)

Menyelesaikan operasi asinkron untuk membuka ClientBase<TChannel> objek.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Faulted

Penanganan aktivitas yang dipanggil ketika kesalahan terjadi saat melakukan operasi pada ClientBase<TChannel> objek.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Open()

Menyebabkan objek komunikasi beralih dari status yang dibuat ke status dibuka.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Open(TimeSpan)

ClientBase<TChannel> Menyebabkan objek beralih dari status yang dibuat ke status dibuka dalam interval waktu yang ditentukan.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Opened

Penanganan aktivitas yang dipanggil saat ClientBase<TChannel> objek beralih dari status yang dibuat ke status dibuka.

(Diperoleh dari ClientBase<TChannel>)
ICommunicationObject.Opening

Penanganan aktivitas yang dipanggil saat ClientBase<TChannel> objek beralih dari status yang dibuat ke status dibuka.

(Diperoleh dari ClientBase<TChannel>)
IDisposable.Dispose()

Implementasi eksplisit metode Dispose() .

(Diperoleh dari ClientBase<TChannel>)

Metode Ekstensi

CloseHelperAsync(ICommunicationObject, TimeSpan)

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Digunakan untuk membuat saluran ke layanan dupleks dan mengaitkan saluran tersebut dengan objek panggilan balik.

ConfigureAwait(IAsyncDisposable, Boolean)

Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai dilakukan.

Berlaku untuk