IBindingRuntimePreferences Gränssnitt
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Definierar det valfria kontrakt som en bindning kan implementera för att ange om inkommande begäranden ska hanteras synkront eller asynkront av tjänsten.
public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
- Härledda
Exempel
I följande exempel visas implementeringen av en bindning som implementerar IBindingRuntimePreferences gränssnittet. Den här koden hämtas från exemplet segmenteringskanal :
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
}
Kommentarer
I vissa fall kan det vara mer effektivt för en bindning att bearbeta meddelanden med synkrona Receive eller Request metoder. En Binding klass kan eventuellt implementeras IBindingRuntimePreferences för att indikera för anropare att detta är att föredra.
Om en bindning inte implementerar IBindingRuntimePreferences används standardnivån Windows Communication Foundation (WCF) Service Model Runtime med de asynkrona versionerna av metoderna Receive och Request. Om en bindning implementerar IBindingRuntimePreferenceskontrollerar WCF Service Model Runtime-lagret värdet för ReceiveSynchronously och använder det för att avgöra om de synkrona versionerna av dessa metoder (Receive eller Request) eller de asynkrona versionerna (BeginReceive och EndReceive(IAsyncResult) eller BeginRequest och EndRequest(IAsyncResult)). Om IBindingRuntimePreferences implementeras av bindningen och returneras true från ReceiveSynchronously egenskapen rekommenderar vi att du använder synkrona Receive metoder och Request metoder för att ta emot meddelanden från kanalen. Om bindningen inte implementerar IBindingRuntimePreferences eller returnerar false från ReceiveSynchronously egenskapen rekommenderar vi att du använder de asynkrona BeginReceive metoderna och EndReceive(IAsyncResult) metoderna BeginRequestEndRequest(IAsyncResult) .
Oavsett vilket värde som returneras av ReceiveSynchronously egenskapen måste alla bindningar fortfarande tillhandahålla giltiga implementeringar av både synkrona och asynkrona versioner av Receive metoderna för de specifika kanaltyper som implementeras. Mer information om hur du implementerar anpassade kanaler finns i Utveckla kanaler.
Egenskaper
| Name | Description |
|---|---|
| ReceiveSynchronously |
Hämtar ett värde som anger om inkommande begäranden kan hanteras mer effektivt synkront eller asynkront. |