IBindingRuntimePreferences Schnittstelle
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert den optionalen Vertrag, den eine Bindung implementieren kann, um anzugeben, ob eingehende Anforderungen synchron oder asynchron vom Dienst behandelt werden.
public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
- Abgeleitet
Beispiele
Das folgende Beispiel zeigt die Implementierung einer Bindung, die die IBindingRuntimePreferences Schnittstelle implementiert. Dieser Code stammt aus dem Beispiel "Chunking Channel ":
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
}
Hinweise
In einigen Fällen kann es effizienter sein, eine Bindung zum Verarbeiten von Nachrichten mit den synchronen Receive oder Request Methoden zu verarbeiten. Eine Binding Klasse kann optional implementieren IBindingRuntimePreferences , um anrufern anzugeben, dass dies bevorzugt wird.
Wenn eine Bindung nicht implementiert wird IBindingRuntimePreferences, verwendet die Windows Communication Foundation (WCF)-Dienstmodell-Runtime-Ebene standardmäßig die asynchronen Versionen der Receive Und Request Methoden. Wenn eine Bindung implementiert IBindingRuntimePreferenceswird, überprüft die WCF-Dienstmodell-Runtime-Ebene den Wert und ReceiveSynchronously verwendet diese, um zu bestimmen, ob die synchronen Versionen dieser Methoden ( oder Request) oder die asynchronen Versionen (BeginReceiveReceive und oder BeginRequest und EndReceive(IAsyncResult) ) EndRequest(IAsyncResult)aufgerufen werden sollen. Wenn IBindingRuntimePreferences die Bindung implementiert und von der ReceiveSynchronously Eigenschaft zurückgegeben true wird, wird empfohlen, dass Sie die synchronen Receive Und Request Methoden verwenden, um Nachrichten vom Kanal zu empfangen. Wenn die Bindung die Eigenschaft nicht implementiert IBindingRuntimePreferences oder zurückgibt ReceiveSynchronouslyfalse, empfiehlt es sich, die asynchronen BeginReceive und oder BeginRequestEndReceive(IAsyncResult) methoden EndRequest(IAsyncResult) zu verwenden.
Unabhängig vom von der ReceiveSynchronously Eigenschaft zurückgegebenen Wert müssen alle Bindungen weiterhin gültige Implementierungen der synchronen und asynchronen Versionen der Receive Methoden für die jeweiligen Kanaltypen bereitstellen. Weitere Informationen zum Implementieren von benutzerdefinierten Kanälen finden Sie unter Developing Channels.
Eigenschaften
| Name | Beschreibung |
|---|---|
| ReceiveSynchronously |
Ruft einen Wert ab, der angibt, ob eingehende Anforderungen synchron oder asynchron verarbeitet werden können. |