IBindingRuntimePreferences Antarmuka
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.
Menentukan kontrak opsional yang dapat diterapkan pengikatan untuk menentukan apakah permintaan masuk ditangani secara sinkron atau asinkron oleh layanan.
public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
- Turunan
Contoh
Contoh berikut menunjukkan implementasi pengikatan yang mengimplementasikan IBindingRuntimePreferences antarmuka. Kode ini diambil dari sampel Saluran Penggugusan :
public class TcpChunkingBinding : Binding, IBindingRuntimePreferences
{
TcpTransportBindingElement tcpbe;
ChunkingBindingElement be;
public TcpChunkingBinding()
: base()
{
Initialize();
}
public TcpChunkingBinding(string name, string ns)
: base(name, ns)
{
Initialize();
}
public override BindingElementCollection CreateBindingElements()
{
BindingElementCollection col = new BindingElementCollection();
col.Add(be);
col.Add(tcpbe);
return col;
}
public override string Scheme
{
get { return tcpbe.Scheme; }
}
public int MaxBufferedChunks
{
get { return this.be.MaxBufferedChunks; }
set { this.be.MaxBufferedChunks = value; }
}
void Initialize()
{
be = new ChunkingBindingElement();
tcpbe = new TcpTransportBindingElement();
tcpbe.TransferMode=TransferMode.Buffered; //no transport streaming
tcpbe.MaxReceivedMessageSize = ChunkingUtils.ChunkSize + 100 * 1024; //add 100KB for headers
this.SendTimeout = new TimeSpan(0, 5, 0);
this.ReceiveTimeout = this.SendTimeout;
}
#region IBindingRuntimePreferences Members
public bool ReceiveSynchronously
{
get { return true; }
}
#endregion
}
Keterangan
Dalam beberapa kasus mungkin lebih efisien untuk pengikatan untuk memproses pesan dengan metode atau Request sinkronReceive. Kelas Binding dapat secara opsional mengimplementasikan IBindingRuntimePreferences untuk menunjukkan kepada pemanggil bahwa ini lebih disukai.
Jika pengikatan tidak menerapkan IBindingRuntimePreferences, lapisan Runtime Model Layanan Windows Communication Foundation (WCF) default menggunakan versi asinkron metode Receive
dan Request
. Jika pengikatan mengimplementasikan IBindingRuntimePreferences, lapisan Runtime Model Layanan WCF memeriksa nilai ReceiveSynchronously dan menggunakannya untuk menentukan apakah akan memanggil versi sinkron metode ini (Receive atau ) atau Requestversi asinkron (BeginReceive dan EndReceive(IAsyncResult) atau BeginRequest dan EndRequest(IAsyncResult)). Jika IBindingRuntimePreferences diimplementasikan oleh pengikatan dan pengembalian dari ReceiveSynchronously properti , disarankan true
agar Anda menggunakan metode dan Request sinkron Receive untuk menerima pesan dari saluran. Jika pengikatan tidak mengimplementasikan IBindingRuntimePreferences atau mengembalikan dari ReceiveSynchronously properti , disarankan false
agar Anda menggunakan metode asinkron BeginReceive dan EndReceive(IAsyncResult) atau BeginRequest dan EndRequest(IAsyncResult) .
Terlepas dari nilai yang dikembalikan oleh ReceiveSynchronously properti , semua pengikatan masih harus memberikan implementasi yang valid dari versi Receive
metode sinkron dan asinkron untuk jenis saluran tertentu yang diterapkan. Untuk informasi selengkapnya tentang menerapkan saluran kustom, lihat Mengembangkan Saluran.
Properti
ReceiveSynchronously |
Mendapatkan nilai yang menunjukkan apakah permintaan masuk dapat ditangani secara lebih efisien secara sinkron atau asinkron. |