DuplexChannelFactory<TChannel> Kelas

Definisi

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

generic <typename TChannel>
public ref class DuplexChannelFactory : System::ServiceModel::ChannelFactory<TChannel>
public class DuplexChannelFactory<TChannel> : System.ServiceModel.ChannelFactory<TChannel>
type DuplexChannelFactory<'Channel> = class
    inherit ChannelFactory<'Channel>
Public Class DuplexChannelFactory(Of TChannel)
Inherits ChannelFactory(Of TChannel)

Jenis parameter

TChannel

Jenis saluran yang diproduksi oleh pabrik saluran.

Warisan
Turunan

Contoh

Contoh berikut menunjukkan cara membuat pabrik saluran dan menggunakannya untuk membuat dan mengelola saluran.

// Construct InstanceContext to handle messages on the callback interface.
// An instance of ChatApp is created and passed to the InstanceContext.
    InstanceContext site = new InstanceContext(new ChatApp());

// Create the participant with the given endpoint configuration.
// Each participant opens a duplex channel to the mesh.
// Participant is an instance of the chat application that has opened a channel to the mesh.

    using (DuplexChannelFactory<IChatChannel> cf =
        new DuplexChannelFactory<IChatChannel>(site,"ChatEndpoint"))
    {
        X509Certificate2 issuer = GetCertificate(
            StoreName.CertificateAuthority,
            StoreLocation.CurrentUser, "CN=" + issuerName,
            X509FindType.FindBySubjectDistinguishedName);
        cf.Credentials.Peer.Certificate =
            GetCertificate(StoreName.My,
            StoreLocation.CurrentUser,
            "CN=" + member,
            X509FindType.FindBySubjectDistinguishedName);
        cf.Credentials.Peer.PeerAuthentication.CertificateValidationMode  =
            X509CertificateValidationMode.Custom;
        cf.Credentials.Peer.PeerAuthentication.CustomCertificateValidator =
            new IssuerBasedValidator();

        using (IChatChannel participant = cf.CreateChannel())
        {
    // Retrieve the PeerNode associated with the participant and register for online/offline events.
    // PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
            IOnlineStatus ostat = participant.GetProperty<IOnlineStatus>();
            ostat.Online += new EventHandler(OnOnline);
            ostat.Offline += new EventHandler(OnOffline);

            Console.WriteLine("{0} is ready", member);
            Console.WriteLine("Press <ENTER> to send the chat message.");

    // Announce self to other participants.
            participant.Join(member);
            Console.ReadLine();
            participant.Chat(member, "Hi there - I am chatting");

            Console.WriteLine("Press <ENTER> to terminate this instance of chat.");
            Console.ReadLine();
    // Leave the mesh and close the client.
            participant.Leave(member);
        }
    }

Keterangan

Saluran dupleks memungkinkan klien dan server untuk berkomunikasi satu sama lain secara independen sehingga dapat memulai panggilan ke yang lain. Layanan dupleks dapat mengirim pesan ke titik akhir klien, menyediakan perilaku seperti peristiwa. Komunikasi dupleks terjadi ketika klien membuat sesi dengan layanan dan menyediakan layanan dengan saluran tempat layanan dapat mengirim pesan kembali ke klien. Berbagai CreateChannel metode digunakan untuk membuat saluran dupleks ini. Pola pesan dupleks adalah salah satu dari tiga pola pesan yang tersedia untuk layanan Windows Communication Foundation (WCF). Dua pola pesan lainnya adalah satu arah dan balasan permintaan.

Untuk diskusi umum tentang layanan dupleks yang memungkinkan klien untuk terhubung kembali ke layanan, lihat Layanan Duplex. Untuk kerangka dan diskusi tentang langkah-langkah yang terlibat dalam penulisan aplikasi klien Windows Communication Foundation (WCF) menggunakan pabrik saluran, lihat Cara: Menggunakan ChannelFactory. Untuk prosedur yang menjelaskan cara membuat klien Windows Communication Foundation (WCF) di kelas klien yang mengimplementasikan antarmuka panggilan balik untuk mengakses layanan yang menggunakan pola olahpesan dupleks, lihat Cara: Mengakses Layanan dengan Kontrak Duplex.

Konstruktor

DuplexChannelFactory<TChannel>(InstanceContext)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan konteks instans tertentu.

DuplexChannelFactory<TChannel>(InstanceContext, Binding)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan konteks yang mengimplementasikan kontrak panggilan balik dan pengikatan tertentu.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan pengikatan dan alamat titik akhir yang ditentukan.

DuplexChannelFactory<TChannel>(InstanceContext, Binding, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan konteks instans, pengikatan, dan alamat jarak jauh yang ditentukan.

DuplexChannelFactory<TChannel>(InstanceContext, ServiceEndpoint)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan titik akhir tertentu.

DuplexChannelFactory<TChannel>(InstanceContext, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan konfigurasi tertentu.

DuplexChannelFactory<TChannel>(InstanceContext, String, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan konfigurasi dan alamat titik akhir yang ditentukan.

DuplexChannelFactory<TChannel>(Object)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik.

DuplexChannelFactory<TChannel>(Object, Binding)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan pengikatan tertentu.

DuplexChannelFactory<TChannel>(Object, Binding, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan pengikatan dan alamat titik akhir yang ditentukan.

DuplexChannelFactory<TChannel>(Object, Binding, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek panggilan balik, pengikatan, dan alamat jarak jauh yang ditentukan.

DuplexChannelFactory<TChannel>(Object, ServiceEndpoint)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan titik akhir tertentu.

DuplexChannelFactory<TChannel>(Object, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik dan konfigurasi tertentu.

DuplexChannelFactory<TChannel>(Object, String, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan objek yang mengimplementasikan kontrak panggilan balik, serta konfigurasi dan alamat titik akhir yang ditentukan.

DuplexChannelFactory<TChannel>(Type)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans panggilan balik yang ditentukan.

DuplexChannelFactory<TChannel>(Type, Binding)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans panggilan balik dan pengikatan yang ditentukan.

DuplexChannelFactory<TChannel>(Type, Binding, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans panggilan balik, pengikatan, dan alamat jarak jauh yang ditentukan.

DuplexChannelFactory<TChannel>(Type, Binding, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans panggilan balik, pengikatan, dan alamat jarak jauh yang ditentukan.

DuplexChannelFactory<TChannel>(Type, ServiceEndpoint)

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

DuplexChannelFactory<TChannel>(Type, String)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans dan konfigurasi panggilan balik yang ditentukan.

DuplexChannelFactory<TChannel>(Type, String, EndpointAddress)

Menginisialisasi instans DuplexChannelFactory<TChannel> baru kelas dengan jenis instans panggilan balik, konfigurasi, dan alamat jarak jauh yang ditentukan.

Properti

Credentials

Mendapatkan kredensial yang digunakan oleh klien untuk mengomunikasikan titik akhir layanan melalui saluran yang diproduksi oleh pabrik.

(Diperoleh dari ChannelFactory)
DefaultCloseTimeout

Mendapatkan interval waktu default yang disediakan agar operasi penutupan selesai.

(Diperoleh dari ChannelFactory)
DefaultOpenTimeout

Mendapatkan interval waktu default yang disediakan agar operasi terbuka selesai.

(Diperoleh dari ChannelFactory)
Endpoint

Mendapatkan titik akhir layanan tempat saluran yang diproduksi oleh pabrik terhubung.

(Diperoleh dari ChannelFactory)
IsDisposed

Mendapatkan nilai yang menunjukkan apakah objek komunikasi telah dibuang.

(Diperoleh dari CommunicationObject)
State

Mendapatkan nilai yang menunjukkan status objek komunikasi saat ini.

(Diperoleh dari CommunicationObject)
ThisLock

Mendapatkan kunci yang saling eksklusif yang melindungi instans kelas selama transisi status.

(Diperoleh dari CommunicationObject)

Metode

Abort()

Menyebabkan objek komunikasi segera beralih dari statusnya saat ini ke status penutupan.

(Diperoleh dari CommunicationObject)
ApplyConfiguration(String)

Menginisialisasi pabrik saluran dengan perilaku yang disediakan oleh file konfigurasi tertentu dan dengan yang ada di titik akhir layanan pabrik saluran.

(Diperoleh dari ChannelFactory)
BeginClose(AsyncCallback, Object)

Memulai operasi asinkron untuk menutup objek komunikasi.

(Diperoleh dari CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Memulai operasi asinkron untuk menutup objek komunikasi dengan batas waktu yang ditentukan.

(Diperoleh dari CommunicationObject)
BeginOpen(AsyncCallback, Object)

Memulai operasi asinkron untuk membuka objek komunikasi.

(Diperoleh dari CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Memulai operasi asinkron untuk membuka objek komunikasi dalam interval waktu tertentu.

(Diperoleh dari CommunicationObject)
Close()

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

(Diperoleh dari CommunicationObject)
Close(TimeSpan)

Menyebabkan objek komunikasi beralih dari statusnya saat ini ke status tertutup dalam interval waktu tertentu.

(Diperoleh dari CommunicationObject)
CreateChannel()

Membuat saluran dari jenis tertentu ke alamat titik akhir tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannel(EndpointAddress)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan di alamat titik akhir tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannel(EndpointAddress, Uri)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext, Binding, EndpointAddress)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext, Binding, EndpointAddress, Uri)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext, EndpointAddress)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext, EndpointAddress, Uri)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(InstanceContext, String)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(Object, Binding, EndpointAddress)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(Object, Binding, EndpointAddress, Uri)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannel(Object, String)

Membuat saluran dupleks antara layanan dan instans panggilan balik pada klien.

CreateChannelWithActAsToken(SecurityToken)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan bertindak sebagai token keamanan.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan bertindak sebagai token keamanan pada alamat titik akhir tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithActAsToken(SecurityToken, EndpointAddress, Uri)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan bertindak sebagai token keamanan pada alamat titik akhir tertentu melalui alamat transportasi tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan token keamanan yang dikeluarkan.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan token keamanan yang dikeluarkan pada alamat titik akhir tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithIssuedToken(SecurityToken, EndpointAddress, Uri)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan token keamanan yang dikeluarkan pada alamat titik akhir tertentu melalui alamat transportasi tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan atas nama token keamanan.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan atas nama token keamanan pada alamat titik akhir tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateChannelWithOnBehalfOfToken(SecurityToken, EndpointAddress, Uri)

Membuat saluran yang digunakan untuk mengirim pesan ke layanan dengan atas nama token keamanan pada alamat titik akhir tertentu melalui alamat transportasi tertentu.

(Diperoleh dari ChannelFactory<TChannel>)
CreateDescription()

Membuat deskripsi titik akhir layanan.

(Diperoleh dari ChannelFactory<TChannel>)
CreateFactory()

Membangun pabrik saluran untuk titik akhir pabrik saat ini.

(Diperoleh dari ChannelFactory)
EndClose(IAsyncResult)

Menyelesaikan operasi asinkron untuk menutup objek komunikasi.

(Diperoleh dari CommunicationObject)
EndOpen(IAsyncResult)

Menyelesaikan operasi asinkron untuk membuka objek komunikasi.

(Diperoleh dari CommunicationObject)
EnsureOpened()

Membuka pabrik saluran saat ini jika belum dibuka.

(Diperoleh dari ChannelFactory)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Fault()

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

(Diperoleh dari CommunicationObject)
GetCommunicationObjectType()

Mendapatkan jenis objek komunikasi.

(Diperoleh dari CommunicationObject)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetProperty<T>()

Mengembalikan objek jenis yang diminta, jika ada, dari lapisan yang sesuai di tumpukan saluran, atau null jika tidak ada.

(Diperoleh dari ChannelFactory)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InitializeEndpoint(Binding, EndpointAddress)

Menginisialisasi titik akhir layanan pabrik saluran dengan pengikatan dan alamat tertentu.

(Diperoleh dari ChannelFactory)
InitializeEndpoint(EndpointAddress)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari ChannelFactory)
InitializeEndpoint(ServiceEndpoint)

Menginisialisasi titik akhir layanan pabrik saluran dengan titik akhir tertentu.

(Diperoleh dari ChannelFactory)
InitializeEndpoint(String, EndpointAddress)

Menginisialisasi titik akhir layanan pabrik saluran dengan alamat dan konfigurasi tertentu.

(Diperoleh dari ChannelFactory)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnAbort()

Menghentikan pabrik saluran dalam dari pabrik saluran saat ini.

(Diperoleh dari ChannelFactory)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Memulai operasi penutupan asinkron pada pabrik saluran dalam dari pabrik saluran saat ini yang memiliki objek status yang terkait dengannya.

(Diperoleh dari ChannelFactory)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Memulai operasi buka asinkron pada pabrik saluran dalam dari pabrik saluran saat ini yang memiliki objek status yang terkait dengannya.

(Diperoleh dari ChannelFactory)
OnClose(TimeSpan)

Panggilan ditutup di pabrik saluran dalam dengan waktu habis yang ditentukan untuk penyelesaian operasi.

(Diperoleh dari ChannelFactory)
OnCloseAsync(TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari ChannelFactory)
OnClosed()

Dipanggil selama transisi objek komunikasi ke status penutupan.

(Diperoleh dari CommunicationObject)
OnClosing()

Dipanggil selama transisi objek komunikasi ke status penutupan.

(Diperoleh dari CommunicationObject)
OnEndClose(IAsyncResult)

Menyelesaikan operasi penutupan asinkron pada pabrik saluran dalam dari pabrik saluran saat ini.

(Diperoleh dari ChannelFactory)
OnEndOpen(IAsyncResult)

Menyelesaikan operasi buka asinkron di pabrik saluran dalam pabrik saluran saat ini.

(Diperoleh dari ChannelFactory)
OnFaulted()

Menyisipkan pemrosesan pada objek komunikasi setelah transisi ke status rusak karena pemanggilan operasi kesalahan sinkron.

(Diperoleh dari CommunicationObject)
OnOpen(TimeSpan)

Panggilan terbuka di pabrik saluran dalam dari pabrik saluran saat ini dengan batas waktu tertentu untuk penyelesaian operasi.

(Diperoleh dari ChannelFactory)
OnOpenAsync(TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari ChannelFactory)
OnOpened()

Menginisialisasi salinan ClientCredentials objek baca-saja untuk pabrik saluran.

(Diperoleh dari ChannelFactory)
OnOpening()

Membangun pabrik saluran dalam untuk saluran saat ini.

(Diperoleh dari ChannelFactory)
Open()

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

(Diperoleh dari CommunicationObject)
Open(TimeSpan)

Menyebabkan objek komunikasi beralih dari status yang dibuat ke status dibuka dalam interval waktu tertentu.

(Diperoleh dari CommunicationObject)
ThrowIfDisposed()

Melempar pengecualian jika objek komunikasi dibuang.

(Diperoleh dari CommunicationObject)
ThrowIfDisposedOrImmutable()

Memberikan pengecualian jika objek State komunikasi properti tidak diatur ke status Created .

(Diperoleh dari CommunicationObject)
ThrowIfDisposedOrNotOpen()

Melempar pengecualian jika objek komunikasi tidak dalam status Opened .

(Diperoleh dari CommunicationObject)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Acara

Closed

Terjadi ketika objek komunikasi beralih ke status tertutup.

(Diperoleh dari CommunicationObject)
Closing

Terjadi ketika objek komunikasi beralih ke status penutupan.

(Diperoleh dari CommunicationObject)
Faulted

Terjadi ketika objek komunikasi beralih ke status rusak.

(Diperoleh dari CommunicationObject)
Opened

Terjadi ketika objek komunikasi beralih ke status terbuka.

(Diperoleh dari CommunicationObject)
Opening

Terjadi ketika objek komunikasi beralih ke status pembukaan.

(Diperoleh dari CommunicationObject)

Implementasi Antarmuka Eksplisit

IAsyncCommunicationObject.CloseAsync(TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari CommunicationObject)
IAsyncCommunicationObject.OpenAsync(TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari CommunicationObject)
IAsyncDisposable.DisposeAsync()

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

(Diperoleh dari ChannelFactory)
IDisposable.Dispose()

Menutup pabrik saluran saat ini.

(Diperoleh dari ChannelFactory)

Metode Ekstensi

CloseHelperAsync(ICommunicationObject, TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

OpenHelperAsync(ICommunicationObject, TimeSpan)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

GetInternalCloseTimeout(CommunicationObject)

Menyediakan sarana untuk membuat dan mengelola saluran dupleks dari berbagai jenis yang digunakan oleh klien untuk mengirim dan menerima pesan ke dan dari titik akhir layanan.

ConfigureAwait(IAsyncDisposable, Boolean)

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

Berlaku untuk