IBindingRuntimePreferences Arabirim

Tanım

Gelen isteklerin hizmet tarafından zaman uyumlu veya zaman uyumsuz olarak işlenip işlenmeyeceğini belirtmek için bağlamanın uygulayabileceği isteğe bağlı sözleşmeyi tanımlar.

public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
Türetilmiş

Örnekler

Aşağıdaki örnekte arabirimini uygulayan bir bağlamanın uygulanması gösterilmektedir IBindingRuntimePreferences . Bu kod ÖbekLeme Kanalı örneğinden alınır:

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
}

Açıklamalar

Bazı durumlarda, bağlamanın iletileri zaman uyumlu Receive veya Request yöntemlerle işlemesi daha verimli olabilir. Sınıf Binding isteğe bağlı olarak çağıranlara bunun tercih edilir olduğunu göstermek için uygulayabilir IBindingRuntimePreferences .

Bağlama uygulamazsaIBindingRuntimePreferences, Windows Communication Foundation (WCF) Hizmet Modeli Çalışma Zamanı katmanı varsayılan olarak ve Request yöntemlerinin zaman uyumsuz sürümlerini Receive kullanır. Bağlama uygularsa IBindingRuntimePreferences, WCF Hizmet Modeli Çalışma Zamanı katmanı değerini denetler ReceiveSynchronously ve bunu kullanarak bu yöntemlerin (Receive veya Request) zaman uyumlu sürümlerinin veya zaman uyumsuz sürümlerin (BeginReceive ve EndReceive(IAsyncResult) veya BeginRequest ve EndRequest(IAsyncResult)) çağrılıp çağrılmayacağını belirler. Bağlama tarafından uygulanırsa ve özelliğinden döndürürse trueIBindingRuntimePreferences, kanaldan ReceiveSynchronously ileti almak için zaman uyumlu Receive ve Request yöntemlerini kullanmanız önerilir. Bağlama uygulamazsa IBindingRuntimePreferences veya özelliğinden ReceiveSynchronously döndürmezsefalse, zaman uyumsuz BeginReceive ve veya BeginRequest ve EndReceive(IAsyncResult)EndRequest(IAsyncResult) yöntemlerini kullanmanız önerilir.

özelliği tarafından ReceiveSynchronously döndürülen değerden bağımsız olarak, tüm bağlamaların uygulanan belirli kanal türleri için yöntemlerin hem zaman uyumlu hem de zaman uyumsuz sürümlerinin Receive geçerli uygulamalarını sağlamaya devam etmesi gerekir. Özel kanalları uygulama hakkında daha fazla bilgi için bkz. Kanal Geliştirme.

Özellikler

ReceiveSynchronously

Gelen isteklerin daha verimli bir şekilde, zaman uyumlu veya zaman uyumsuz olarak işlenip işlenemeyeceğini belirten bir değer alır.

Şunlara uygulanır