IBindingRuntimePreferences Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje volitelný kontrakt, který může vazba implementovat, aby určila, jestli se příchozí požadavky zpracovávají synchronně nebo asynchronně službou.
public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
- Odvozené
Příklady
Následující příklad ukazuje implementaci vazby, která implementuje IBindingRuntimePreferences rozhraní. Tento kód pochází z ukázky kanálu bloků dat:
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
}
Poznámky
V některých případech může být pro vazbu ke zpracování zpráv pomocí synchronních Receive nebo Request metod efektivnější. Binding Třída může volitelně implementovatIBindingRuntimePreferences, aby indikovala volajícím, že je to upřednostňované.
Pokud se vazba neimplementuje IBindingRuntimePreferences, vrstva modulu runtime modelu služby Windows Communication Foundation (WCF) ve výchozím nastavení používá asynchronní verze Receive a Request metody. Pokud se implementuje IBindingRuntimePreferencesvazba, vrstva modulu runtime modelu služby WCF zkontroluje hodnotu ReceiveSynchronously a použije ji k určení, zda se mají volat synchronní verze těchto metod (Receive nebo Request) nebo asynchronní verze (BeginReceive a EndReceive(IAsyncResult) nebo BeginRequest a EndRequest(IAsyncResult)). Pokud IBindingRuntimePreferences je implementována vazbou a vrací true z ReceiveSynchronously vlastnosti, doporučujeme použít synchronní Receive a Request metody přijímat zprávy z kanálu. Pokud vazba neimplementuje IBindingRuntimePreferences nebo vrací false z ReceiveSynchronously vlastnosti, doporučuje se použít asynchronní BeginReceive a EndReceive(IAsyncResult) nebo BeginRequest a EndRequest(IAsyncResult) metody.
Bez ohledu na hodnotu vrácenou ReceiveSynchronously vlastností musí všechny vazby stále poskytovat platné implementace synchronní i asynchronní verze Receive metod pro konkrétní typy kanálů implementované. Další informace o implementaci vlastních kanálů naleznete v tématu Vývoj kanálů.
Vlastnosti
| Name | Description |
|---|---|
| ReceiveSynchronously |
Získá hodnotu, která označuje, zda příchozí požadavky lze zpracovávat efektivněji nebo asynchronněji. |