ChannelFactory Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan.
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IDisposable, System::ServiceModel::Channels::IChannelFactory
public ref class ChannelFactory abstract : System::ServiceModel::Channels::CommunicationObject, IAsyncDisposable, IDisposable, System::ServiceModel::Channels::IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IDisposable, System.ServiceModel.Channels.IChannelFactory
public abstract class ChannelFactory : System.ServiceModel.Channels.CommunicationObject, IAsyncDisposable, IDisposable, System.ServiceModel.Channels.IChannelFactory
type ChannelFactory = class
inherit CommunicationObject
interface IDisposable
interface IChannelFactory
interface ICommunicationObject
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
interface IAsyncDisposable
type ChannelFactory = class
inherit CommunicationObject
interface IChannelFactory
interface ICommunicationObject
interface IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IChannelFactory, IDisposable
Public MustInherit Class ChannelFactory
Inherits CommunicationObject
Implements IAsyncDisposable, IChannelFactory, IDisposable
- Warisan
- Turunan
- Penerapan
Contoh
Contoh kode berikut menunjukkan cara menyisipkan perilaku klien secara terprogram sebelum pembuatan objek saluran oleh pabrik.
public class Client
{
public static void Main()
{
try
{
// Picks up configuration from the config file.
ChannelFactory<ISampleServiceChannel> factory
= new ChannelFactory<ISampleServiceChannel>("WSHttpBinding_ISampleService");
// Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(new EndpointBehaviorMessageInspector());
ISampleServiceChannel wcfClientChannel = factory.CreateChannel();
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClientChannel.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
// Done with service.
wcfClientChannel.Close();
Console.WriteLine("Done!");
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
Console.Read();
}
catch (FaultException<SampleFault> fault)
{
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage);
Console.Read();
}
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message);
Console.Read();
}
}
Public Class Client
Public Shared Sub Main()
Try
' Picks up configuration from the config file.
Dim factory As New ChannelFactory(Of ISampleServiceChannel)("WSHttpBinding_ISampleService")
' Add the client side behavior programmatically to all created channels.
factory.Endpoint.Behaviors.Add(New EndpointBehaviorMessageInspector())
Dim wcfClientChannel As ISampleServiceChannel = factory.CreateChannel()
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClientChannel.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
' Done with service.
wcfClientChannel.Close()
Console.WriteLine("Done!")
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
Console.Read()
Catch fault As FaultException(Of SampleFault)
Console.WriteLine("SampleFault fault occurred: {0}", fault.Detail.FaultMessage)
Console.Read()
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message)
Console.Read()
End Try
End Sub
Keterangan
Pabrik saluran yang mengimplementasikan IChannelFactory antarmuka dan saluran terkait umumnya digunakan oleh inisiator pola komunikasi. Pabrik pendengar yang mengimplementasikan IChannelListener antarmuka dan pendengar terkait menyediakan mekanisme saluran mana yang diterima untuk komunikasi.
Kelas ini bukan bagian dari model saluran, tetapi dari model layanan. Metode ini CreateFactory menyediakan sarana untuk membuat IChannelFactory untuk titik akhir layanan. Gunakan untuk membangun klien yang menghubungkan kontrak antarmuka pada layanan tanpa menggunakan metadata atau kebijakan.
Catatan
Pengaturan ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
untuk TokenImpersonationLevel.Anonymous
selalu menghasilkan masuk anonim terlepas dari tingkat peniruan.
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; mereka menyebabkan pengompilasi untuk menghasilkan IDisposablesecara otomatis .
Hindari anggota non-referensi; mereka dapat menyebabkan pengompilasi untuk menghasilkan IDisposablesecara otomatis .
Hindari menggunakan finalizer; tetapi jika Anda menyertakannya, Anda harus menekan peringatan dan panggilan SuppressFinalize(Object) build dan finalizer itu sendiri dari (On)(Begin)Close (dan/atau OnAbort) untuk meniru apa yang akan menjadi perilaku yang dihasilkan IDisposable secara otomatis.
Saat menambahkan perilaku secara terprogram, perilaku ditambahkan ke properti yang sesuai Behaviors
pada ChannelFactory sebelum pembuatan saluran apa pun. Lihat bagian contoh untuk sampel kode.
Konstruktor
ChannelFactory() |
Menginisialisasi instans baru kelas ChannelFactory. |
Properti
Credentials |
Mendapatkan kredensial yang digunakan oleh klien untuk mengomunikasikan titik akhir layanan melalui saluran yang diproduksi oleh pabrik. |
DefaultCloseTimeout |
Mendapatkan interval waktu default yang disediakan agar operasi penutupan selesai. |
DefaultOpenTimeout |
Mendapatkan interval waktu default yang disediakan agar operasi terbuka selesai. |
Endpoint |
Mendapatkan titik akhir layanan tempat saluran yang diproduksi oleh pabrik terhubung. |
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. |
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) |
CreateDescription() |
Saat diimplementasikan di kelas turunan, membuat deskripsi titik akhir layanan yang terkait dengan pabrik saluran. |
CreateFactory() |
Membangun pabrik saluran untuk titik akhir pabrik saat ini. |
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. |
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 |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
InitializeEndpoint(Binding, EndpointAddress) |
Menginisialisasi titik akhir layanan pabrik saluran dengan pengikatan dan alamat tertentu. |
InitializeEndpoint(EndpointAddress) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
InitializeEndpoint(ServiceEndpoint) |
Menginisialisasi titik akhir layanan pabrik saluran dengan titik akhir tertentu. |
InitializeEndpoint(String, EndpointAddress) |
Menginisialisasi titik akhir layanan pabrik saluran dengan alamat dan konfigurasi tertentu. |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
OnAbort() |
Menghentikan pabrik saluran dalam dari pabrik saluran saat ini. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Memulai operasi penutupan asinkron pada pabrik saluran dalam dari pabrik saluran saat ini yang memiliki objek status yang terkait dengannya. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Memulai operasi buka asinkron pada pabrik saluran dalam dari pabrik saluran saat ini yang memiliki objek status yang terkait dengannya. |
OnClose(TimeSpan) |
Panggilan ditutup di pabrik saluran dalam dengan waktu habis yang ditentukan untuk penyelesaian operasi. |
OnCloseAsync(TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
OnCloseAsync(TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. (Diperoleh dari CommunicationObject) |
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. |
OnEndOpen(IAsyncResult) |
Menyelesaikan operasi buka asinkron di pabrik saluran dalam pabrik saluran saat ini. |
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. |
OnOpenAsync(TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
OnOpenAsync(TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. (Diperoleh dari CommunicationObject) |
OnOpened() |
Menginisialisasi salinan ClientCredentials objek baca-saja untuk pabrik saluran. |
OnOpening() |
Membangun pabrik saluran dalam untuk saluran saat ini. |
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) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. (Diperoleh dari CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. (Diperoleh dari CommunicationObject) |
IAsyncDisposable.DisposeAsync() |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
IDisposable.Dispose() |
Menutup pabrik saluran saat ini. |
Metode Ekstensi
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
GetInternalCloseTimeout(CommunicationObject) |
Membuat dan mengelola saluran yang digunakan oleh klien untuk mengirim pesan ke titik akhir layanan. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Mengonfigurasi bagaimana menunggu tugas yang dikembalikan dari asinkron sekali pakai dilakukan. |
Berlaku untuk
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk