BindingElement 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.
Elemen pengikatan yang membangun pabrik saluran dan pendengar saluran untuk berbagai jenis saluran yang digunakan untuk memproses pesan keluar dan masuk.
public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
- Warisan
-
BindingElement
- Turunan
Contoh
Contoh berikut menunjukkan cara menambahkan elemen pengikatan transportasi ke pengikatan kustom lalu membangun pendengar saluran yang dapat menerima pesan masuk.
CustomBinding binding = new CustomBinding();
binding.Elements.Add(new HttpTransportBindingElement());
BindingParameterCollection paramCollection = new BindingParameterCollection();
IChannelListener<IReplyChannel> listener = binding.BuildChannelListener<IReplyChannel>
(new Uri("http://localhost:8000/ChannelApp"), paramCollection);
listener.Open();
IReplyChannel channel = listener.AcceptChannel();
Console.WriteLine("Listening for messages");
channel.Open();
RequestContext request = channel.ReceiveRequest();
Message msg = request.RequestMessage;
Console.WriteLine("Message Received");
Console.WriteLine("Message Action: {0}", msg.Headers.Action);
if (msg.Headers.Action == "hello")
{
Message reply = Message.CreateMessage(MessageVersion.Default, "wcf");
request.Reply(reply);
}
msg.Close();
channel.Close();
listener.Close();
Dim binding As New CustomBinding()
binding.Elements.Add(New HttpTransportBindingElement())
Dim paramCollection As New BindingParameterCollection()
Dim listener As IChannelListener(Of IReplyChannel)
listener = binding.BuildChannelListener(Of IReplyChannel)(New Uri("http://localhost/channelApp"), paramCollection)
listener.Open()
Dim channel As IReplyChannel = listener.AcceptChannel()
Console.WriteLine("Listening for messages")
channel.Open()
Dim request As RequestContext = channel.ReceiveRequest()
Dim msg As Message = request.RequestMessage
Console.WriteLine("Message Received")
Console.WriteLine("Message Action: {0}", msg.Headers.Action)
If (msg.Headers.Action = "hello") Then
Dim reply As Message = Message.CreateMessage(MessageVersion.Default, "wcf")
request.Reply(reply)
End If
msg.Close()
channel.Close()
listener.Close()
Keterangan
Pengikatan terdiri dari serangkaian elemen pengikatan yang diurutkan yang mewarisi dari kelas dasar abstrak ini. Kelas TransportBindingElement mewarisi dari BindingElement kelas .
Membuat elemen pengikatan dan pengikatan untuk transportasi Anda bersifat opsional jika Anda hanya menggunakan model saluran. Dimungkinkan untuk melakukan semua yang Anda butuhkan melalui pabrik saluran dan pendengar selama mereka dibuat publik.
Model layanan Windows Communication Foundation (WCF) menggunakan pola pabrik tempat pengikatan digunakan untuk membuat tumpukan saluran. Jika Anda ingin menggunakan model layanan WCF, maka diperlukan elemen pengikatan transportasi. Menempatkan elemen pengikatan ini ke dalam pengikatan adalah praktik yang baik karena menghapus persyaratan bagi pengguna untuk membuat pengikatan kustom mereka sendiri untuk transportasi Anda. Yang terbaik adalah membuat elemen pengikatan dan pengikatan, dan menyembunyikan pabrik saluran dan pendengar di dalam perakitan.
Di sisi pengirim, pengikatan digunakan untuk membangun IChannelFactory, yang pada gilirannya membangun tumpukan saluran dan mengembalikan referensi ke saluran atas di tumpukan. Aplikasi kemudian dapat menggunakan saluran ini untuk mengirim pesan.
Demikian pula, di sisi penerimaan, pengikatan digunakan untuk membangun IChannelListener, yang mendengarkan pesan masuk. menyediakan IChannelListener pesan ke aplikasi mendengarkan dengan membuat tumpukan saluran dan menyerahkan aplikasi referensi ke saluran atas. Aplikasi kemudian menggunakan saluran ini untuk menerima pesan masuk.
Note
Jika Anda menambahkan header pesan yang harus dienkripsi, Anda harus mengembalikan ChannelProtectionRequirements instans dengan persyaratan Anda dari GetProperty<T>(BindingContext) metode saat diminta ChannelProtectionRequirements.
Konstruktor
| Nama | Deskripsi |
|---|---|
| BindingElement() |
Menginisialisasi instans baru dari kelas BindingElement. |
| BindingElement(BindingElement) |
Menginisialisasi instans BindingElement baru kelas dari elemen pengikatan tertentu. |
Metode
| Nama | Deskripsi |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
Menginisialisasi pabrik saluran untuk menghasilkan saluran dari jenis tertentu dari konteks pengikatan. |
| BuildChannelListener<TChannel>(BindingContext) |
Menginisialisasi pendengar saluran untuk menerima saluran dari jenis tertentu dari konteks pengikatan. |
| CanBuildChannelFactory<TChannel>(BindingContext) |
Mengembalikan nilai yang menunjukkan apakah elemen pengikatan dapat membangun pabrik saluran untuk jenis saluran tertentu. |
| CanBuildChannelListener<TChannel>(BindingContext) |
Mengembalikan nilai yang menunjukkan apakah elemen pengikatan dapat membangun pendengar untuk jenis saluran tertentu. |
| Clone() |
Saat ditimpa di kelas turunan, mengembalikan salinan objek elemen pengikatan. |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetProperty<T>(BindingContext) |
Saat ditimpa di kelas turunan, mengembalikan objek yang dititik yang diminta, jika ada, dari lapisan yang sesuai dalam tumpukan pengikatan. |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |