Share via


BindingElement 클래스

정의

보내는 메시지와 들어오는 메시지를 처리하는 데 사용되는 다양한 형식의 채널에 대한 채널 팩터리 및 채널 수신기를 생성하는 바인딩 요소입니다.

public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
상속
BindingElement
파생

예제

다음 예제에서는 전송 바인딩 요소를 사용자 지정 바인딩에 추가한 다음 들어오는 메시지를 수락할 수 있는 채널 수신기를 빌드하는 방법을 보여 줍니다.

CustomBinding binding = new CustomBinding();
binding.Elements.Add(new HttpTransportBindingElement());
BindingParameterCollection paramCollection = new BindingParameterCollection();
IChannelListener<IReplyChannel> listener = binding.BuildChannelListener<IReplyChannel>
    (new Uri("http://localhost:8000/ChannelApp"), paramCollection);

listener.Open();
IReplyChannel channel = listener.AcceptChannel();
Console.WriteLine("Listening for messages");
channel.Open();
RequestContext request = channel.ReceiveRequest();
Message msg = request.RequestMessage;
Console.WriteLine("Message Received");
Console.WriteLine("Message Action: {0}", msg.Headers.Action);

if (msg.Headers.Action == "hello")
{
    Message reply = Message.CreateMessage(MessageVersion.Default, "wcf");
    request.Reply(reply);
}

msg.Close();
channel.Close();
listener.Close();
Dim binding As New CustomBinding()
binding.Elements.Add(New HttpTransportBindingElement())
Dim paramCollection As New BindingParameterCollection()

Dim listener As IChannelListener(Of IReplyChannel)
listener = binding.BuildChannelListener(Of IReplyChannel)(New Uri("http://localhost/channelApp"), paramCollection)

listener.Open()
Dim channel As IReplyChannel = listener.AcceptChannel()
Console.WriteLine("Listening for messages")
channel.Open()
Dim request As RequestContext = channel.ReceiveRequest()
Dim msg As Message = request.RequestMessage
Console.WriteLine("Message Received")
Console.WriteLine("Message Action: {0}", msg.Headers.Action)

If (msg.Headers.Action = "hello") Then

    Dim reply As Message = Message.CreateMessage(MessageVersion.Default, "wcf")
    request.Reply(reply)
End If

msg.Close()
channel.Close()
listener.Close()

설명

바인딩은 이 추상 기본 클래스에서 상속되는 정렬된 바인딩 요소 집합으로 구성됩니다. TransportBindingElement 클래스는 BindingElement 클래스에서 상속됩니다.

채널 모델을 사용하는 경우 전송에 대한 바인딩 및 바인딩 요소를 만드는 것은 선택 사항입니다. 채널 팩터리와 수신기가 공개되는 한 채널 팩터리와 수신기를 통해 필요한 모든 작업을 수행할 수 있습니다.

WCF(Windows Communication Foundation) 서비스 모델은 바인딩을 사용하여 채널 스택을 만드는 팩터리 패턴을 사용합니다. WCF 서비스 모델을 사용하려면 전송 바인딩 요소를 사용해야 합니다. 이 바인딩 요소를 바인딩에 배치하는 것은 사용자가 전송을 위한 고유한 사용자 지정 바인딩을 만들 필요가 없으므로 좋은 방법입니다. 바인딩 요소와 바인딩 요소를 모두 만들고 어셈블리 내에서 채널 팩터리와 수신기를 숨기는 것이 가장 좋습니다.

전송 쪽에서 바인딩을 사용하여 채널 스택을 IChannelFactory빌드하고 스택의 위쪽 채널에 대한 참조를 반환하는 바인딩을 빌드합니다. 그러면 애플리케이션에서 이 채널을 사용하여 메시지를 보낼 수 있습니다.

마찬가지로 수신 쪽에서는 들어오는 메시지를 수신 대기하는 바인딩을 IChannelListener빌드하는 데 사용됩니다. IChannelListener는 채널 스택을 만들고 맨 위 채널에 대한 참조를 애플리케이션에 전달함으로써 수신 대기 애플리케이션에 메시지를 제공합니다. 그러면 애플리케이션에서 이 채널을 사용하여, 들어오는 메시지를 받습니다.

참고

암호화해야 하는 메시지 헤더를 추가하는 경우 요청 ChannelProtectionRequirements시 메서드의 요구 사항이 있는 인스턴스를 GetProperty<T>(BindingContext) 반환 ChannelProtectionRequirements 해야 합니다.

생성자

BindingElement()

BindingElement 클래스의 새 인스턴스를 초기화합니다.

BindingElement(BindingElement)

지정된 바인딩 요소에서 BindingElement 클래스의 새 인스턴스를 초기화합니다.

메서드

BuildChannelFactory<TChannel>(BindingContext)

바인딩 컨텍스트를 사용하여 지정된 형식의 채널을 생성하는 채널 팩터리를 초기화합니다.

BuildChannelListener<TChannel>(BindingContext)

바인딩 컨텍스트를 사용하여 지정된 형식의 채널을 수락하기 위해 채널 수신기를 초기화합니다.

CanBuildChannelFactory<TChannel>(BindingContext)

바인딩 요소에서 특정 채널 형식에 대한 채널 팩터리를 만들 수 있는지 여부를 나타내는 값을 반환합니다.

CanBuildChannelListener<TChannel>(BindingContext)

바인딩 요소에서 특정 채널 형식에 대한 수신기를 만들 수 있는지 여부를 나타내는 값을 반환합니다.

Clone()

파생 클래스에서 재정의되는 경우 바인딩 요소 개체의 복사본을 반환합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetProperty<T>(BindingContext)

파생 클래스에서 재정의되는 경우 요청한 형식화된 개체가 있으면 바인딩 스택의 해당 계층에서 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상