IBindingRuntimePreferences 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
서비스에서 들어오는 요청을 동기적으로 처리하는지 아니면 비동기 적으로 처리하는지를 지정하기 위해 바인딩에서 구현할 수 있는 선택적 계약을 정의합니다.
public interface class IBindingRuntimePreferences
public interface IBindingRuntimePreferences
type IBindingRuntimePreferences = interface
Public Interface IBindingRuntimePreferences
- 파생
예제
다음 예제에서는 IBindingRuntimePreferences 인터페이스를 구현하는 바인딩 구현을 보여 줍니다. 이 코드에서 수행 되는 청크 채널 샘플:
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
}
설명
바인딩에서 동기 버전의 Receive 또는 Request 메서드를 사용하여 메시지를 처리하는 것이 더 효과적인 경우도 있습니다. Binding 클래스는 호출자에게 기본 설정을 나타내기 위해 IBindingRuntimePreferences를 선택적으로 구현할 수 있습니다.
바인딩을 구현 하지 않는 경우 IBindingRuntimePreferences, 기본적으로 Windows Communication Foundation (WCF) 서비스 모델 런타임 계층에서 비동기 버전을 사용 합니다 Receive
및 Request
메서드. 바인딩이 를 구현 IBindingRuntimePreferences하는 경우 WCF 서비스 모델 런타임 계층은 의 ReceiveSynchronously 값을 확인하고 이를 사용하여 이러한 메서드의 동기 버전(Receive 또는 ) 또는 Request비동기 버전(BeginReceive 및 EndReceive(IAsyncResult) 또는 BeginRequest 및 EndRequest(IAsyncResult))을 호출할지 여부를 결정합니다. 바인딩에서 IBindingRuntimePreferences를 구현하고 true
속성에서 ReceiveSynchronously를 반환하는 경우 동기 버전의 Receive 및 Request 메서드를 사용하여 채널로부터 메시지를 수신하는 것이 좋습니다. 바인딩에서 IBindingRuntimePreferences를 구현하지 않거나 false
속성에서 ReceiveSynchronously를 반환하는 경우 비동기 버전의 BeginReceive 및 EndReceive(IAsyncResult) 또는 BeginRequest 및 EndRequest(IAsyncResult) 메서드를 사용하는 것이 좋습니다.
ReceiveSynchronously 속성이 반환하는 값에 관계없이 모든 바인딩은 구현된 특정 채널 형식에 유효한 동기 및 비동기 버전 Receive
메서드 구현을 제공해야 합니다. 사용자 지정 채널을 구현 하는 방법에 대 한 자세한 내용은 참조 하세요. 개발 채널합니다.
속성
ReceiveSynchronously |
들어오는 요청을 동기적으로 처리하는 것이 효과적인지 아니면 비동기적으로 처리하는 것이 효과적인지를 나타내는 값을 가져옵니다. |
적용 대상
.NET