Bagikan melalui


Binding Kelas

Definisi

Berisi elemen pengikatan yang menentukan protokol, transportasi, dan encoder pesan yang digunakan untuk komunikasi antara klien dan layanan.

public ref class Binding abstract : System::ServiceModel::IDefaultCommunicationTimeouts
public abstract class Binding : System.ServiceModel.IDefaultCommunicationTimeouts
type Binding = class
    interface IDefaultCommunicationTimeouts
Public MustInherit Class Binding
Implements IDefaultCommunicationTimeouts
Warisan
Binding
Turunan
Penerapan

Contoh

BasicHttpBinding binding = new BasicHttpBinding();

binding.Name = "binding1";

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
Uri address = new Uri("http://localhost:8000/servicemodelsamples/service/calc");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();
    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}

Keterangan

Mewakili kumpulan elemen pengikatan, yang masing-masing menjelaskan aspek bagaimana titik akhir berkomunikasi dengan titik akhir lain dan yang dibangun, secara konsisten, ke dalam pabrik saluran pada klien dan ke pendengar saluran di layanan. Pengikatan berisi kumpulan elemen pengikatan yang sesuai dengan saluran protokol, saluran transportasi, dan encoder pesan. Mungkin ada sejumlah elemen pengikatan untuk saluran protokol tetapi satu dan hanya satu elemen pengikatan untuk setiap pengode transportasi dan pesan. Biasanya ada enam lapisan elemen pengikatan dalam pengikatan. Hanya elemen pengikatan transportasi dan pengodean di bagian bawah tumpukan yang diperlukan. Karena pengodean diperlukan untuk setiap pengikatan, jika pengodean tidak ditentukan, Windows Communication Foundation (WCF) menambahkan pengodean default untuk Anda. Defaultnya adalah Teks/XML untuk transportasi HTTP dan HTTPS, dan Biner untuk transportasi lain.

Tabel berikut ini meringkas opsi untuk setiap lapisan.

Lapisan Opsi Diperlukan
Alur Transaksi TransactionFlowBindingElement Tidak
Keandalan ReliableSessionBindingElement Tidak
Keamanan Simetris, Asimetris, Tingkat Transportasi Tidak
Perubahan Bentuk CompositeDuplexBindingElement Tidak
Peningkatan Transportasi Aliran SSL, aliran Windows, Penyelesai Serekan Tidak
Pengodean Teks, Biner, MTOM, Kustom Ya
Transportasi TCP, Pipa yang Dinamai, HTTP, HTTPS, MSMQ, Kustom Ya

Setiap elemen pengikatan menyediakan spesifikasi untuk membangun pabrik saluran pada klien dan pendengar saluran pada layanan. Ketika tumpukan pabrik saluran dibangun, misalnya, ada satu pabrik saluran di tumpukan untuk setiap elemen pengikatan dalam pengikatan. Pemetaan semacam yang sama berlaku untuk pendengar saluran di tumpukan pada layanan. Konsistensi pada klien dan layanan sangat penting untuk membangun koneksi berbasis saluran antara titik akhir ini. Setiap pabrik dan pendengar, pada gilirannya, memproses pengiriman dan penerimaan saluran yang sesuai di tumpukan saluran yang menghubungkannya, dan saluran ini kemudian dapat mengirim dan menerima pesan yang digunakan untuk berkomunikasi.

Setiap instans Binding memiliki Name dan Namespace yang bersama-sama secara unik mengidentifikasinya dalam metadata layanan. Jika tidak ada nama atau namespace layanan yang ditentukan, WCF menambahkan nilai default untuk Anda. Nama defaultnya adalah null dan namespace defaultnya adalah http://tempuri.org/. Nama pengguna untuk pengikatan ini berbeda dari spesifikasi nama protokol, yang ditentukan oleh Scheme properti . Jika Anda ingin menambahkan lebih banyak pengikatan HTTP, misalnya, Anda dapat menamainya apa pun yang Anda inginkan dan mengatur semua skemanya ke "http". Tidak ada aplikasi atau pengiriman mesin yang melekat berdasarkan Scheme. Jadi, Anda menghindari masalah umum karena tidak dapat mendaftarkan penangan tambahan untuk protokol terkenal. Anda juga dapat dengan mudah bekerja dengan beberapa versi pengikatan secara berdampingan dengan memberikan nama yang berbeda kepada setiap versi.

Kelas Binding mengimplementasikan IDefaultCommunicationTimeouts antarmuka untuk mengurangi serangan Denial of Service (DOS) yang mengandalkan mengikat sumber daya untuk interval waktu yang lama. Implementasi menentukan nilai batas waktu komunikasi untuk membuka dan menutup koneksi dan untuk operasi membaca dan menulis yang terkait dengan menerima dan mengirim pesan. Properti yang digunakan untuk mendapatkan dan mengatur batas waktu ini dan operasi nilai defaultnya diringkas dalam tabel berikut.

Properti Waktu Habis Nilai Default
OpenTimeout 1 menit
CloseTimeout 1 menit
SendTimeout 1 menit
ReceiveTimeout 10 menit

Saat Anda membuat pengikatan dengan mewarisi dari Binding, Anda harus mengambil CreateBindingElementsalih .

Selain itu, Anda dapat menentukan elemen pengikatan Anda sendiri dan menyisipkannya di antara salah satu lapisan yang ditentukan dalam tabel sebelumnya. Untuk informasi selengkapnya, lihat CustomBinding kelas.

Konstruktor

Binding()

Menginisialisasi instans Binding baru kelas dengan nama dan namespace default.

Binding(String, String)

Menginisialisasi instans Binding baru kelas dari pengikatan layanan tertentu.

Properti

CloseTimeout

Mendapatkan atau mengatur interval waktu yang disediakan agar koneksi ditutup sebelum transportasi memunculkan pengecualian.

MessageVersion

Mendapatkan versi pesan yang digunakan oleh klien dan layanan yang dikonfigurasi dengan pengikatan.

Name

Mendapatkan atau mengatur nama pengikatan.

Namespace

Mendapatkan atau mengatur namespace XML pengikatan.

OpenTimeout

Mendapatkan atau mengatur interval waktu yang disediakan agar koneksi terbuka sebelum transportasi memunculkan pengecualian.

ReceiveTimeout

Mendapatkan atau mengatur interval waktu koneksi dapat tetap tidak aktif, di mana tidak ada pesan aplikasi yang diterima, sebelum dihilangkan.

Scheme

Saat diimplementasikan di kelas turunan, menetapkan skema URI yang menentukan transportasi yang digunakan oleh pabrik saluran dan pendengar yang dibangun oleh pengikatan.

SendTimeout

Mendapatkan atau mengatur interval waktu yang disediakan agar operasi tulis selesai sebelum transportasi memunculkan pengecualian.

Metode

BuildChannelFactory<TChannel>(BindingParameterCollection)

Membangun tumpukan pabrik saluran pada klien yang membuat jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh kumpulan parameter pengikatan.

BuildChannelFactory<TChannel>(Object[])

Membangun tumpukan pabrik saluran pada klien yang membuat jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh array objek.

BuildChannelListener<TChannel>(BindingParameterCollection)

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan oleh kumpulan parameter pengikatan.

BuildChannelListener<TChannel>(Object[])

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, Object[])

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

BuildChannelListener<TChannel>(Uri, String, Object[])

Membangun pendengar saluran pada layanan yang menerima jenis saluran tertentu dan yang memenuhi fitur yang ditentukan.

CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pabrik saluran pada klien yang memenuhi kumpulan parameter pengikatan yang ditentukan.

CanBuildChannelFactory<TChannel>(Object[])

Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pabrik saluran pada klien yang memenuhi persyaratan yang ditentukan oleh array objek.

CanBuildChannelListener<TChannel>(BindingParameterCollection)

Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pendengar saluran pada layanan yang memenuhi kumpulan parameter pengikatan yang ditentukan.

CanBuildChannelListener<TChannel>(Object[])

Mengembalikan nilai yang menunjukkan apakah pengikatan saat ini dapat membangun tumpukan pendengar saluran pada layanan yang memenuhi kriteria yang ditentukan dalam array objek.

CreateBindingElements()

Saat ditimpa di kelas turunan, membuat koleksi yang berisi elemen pengikatan yang merupakan bagian dari pengikatan saat ini.

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>(BindingParameterCollection)

Mengembalikan objek jenis yang diminta, jika ada, dari lapisan yang sesuai dalam tumpukan pengikatan.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ShouldSerializeName()

Mengembalikan apakah nama pengikatan harus diserialisasikan.

ShouldSerializeNamespace()

Mengembalikan apakah namespace pengikatan harus diserialisasikan.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk