BindingElement Sınıf

Tanım

Giden ve gelen iletileri işlemek için kullanılan çeşitli kanal türleri için kanal fabrikalarını ve kanal dinleyicilerini oluşturan bağlamaların öğeleri.

public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
Devralma
BindingElement
Türetilmiş

Örnekler

Aşağıdaki örnekte, özel bağlamaya aktarım bağlama öğesi ekleme ve ardından gelen iletileri kabul edebilen bir kanal dinleyicisi oluşturma işlemi gösterilmektedir.

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()

Açıklamalar

Bağlama, bu soyut temel sınıftan devralan sıralı bir bağlama öğeleri kümesinden oluşur. sınıfı TransportBindingElement sınıfından devralır BindingElement .

Taşımanız için bağlama ve bağlama öğesi oluşturmak, yalnızca kanal modelini kullanıyorsanız isteğe bağlıdır. Herkese açık olduğu sürece kanal fabrikası ve dinleyici aracılığıyla ihtiyacınız olan her şeyi yapmak mümkündür.

Windows Communication Foundation (WCF) hizmet modeli, kanal yığınını oluşturmak için bağlamanın kullanıldığı bir fabrika deseni kullanır. WCF hizmet modelini kullanmak istiyorsanız, aktarım bağlama öğesi kullanmak gerekir. Bu bağlama öğesini bağlamaya yerleştirmek iyi bir uygulamadır çünkü kullanıcıların aktarım için kendi özel bağlamalarını oluşturma gereksinimini ortadan kaldırır. Hem bağlama hem de bağlama öğesi oluşturmak ve kanal fabrikasını ve dinleyiciyi derleme içinde gizlemek en iyisidir.

Gönderen tarafta, bir bağlama, bir kanal yığını oluşturan IChannelFactoryve yığındaki en üst kanala başvuru döndüren bir derlemek için kullanılır. Uygulama daha sonra ileti göndermek için bu kanalı kullanabilir.

Benzer şekilde, alıcı tarafında gelen iletileri dinleyen bir derlemek için bir IChannelListenerbağlama kullanılır. , IChannelListener kanal yığınları oluşturarak ve uygulamaya en üstteki kanala bir başvuru vererek dinleme uygulamasına iletiler sağlar. Uygulama daha sonra gelen iletileri almak için bu kanalı kullanır.

Not

Şifrelenecek ileti üst bilgileri ekliyorsanız, istendiğinde ChannelProtectionRequirementsyönteminden GetProperty<T>(BindingContext) gereksinimlerinizi içeren bir ChannelProtectionRequirements örnek döndürmeniz gerekir.

Oluşturucular

BindingElement()

BindingElement sınıfının yeni bir örneğini başlatır.

BindingElement(BindingElement)

Belirtilen bağlama öğesinden sınıfının yeni bir örneğini BindingElement başlatır.

Yöntemler

BuildChannelFactory<TChannel>(BindingContext)

Bağlama bağlamından belirtilen türde kanallar oluşturmak için bir kanal fabrikası başlatır.

BuildChannelListener<TChannel>(BindingContext)

Bağlama bağlamından belirtilen türdeki kanalları kabul etmek için bir kanal dinleyicisi başlatır.

CanBuildChannelFactory<TChannel>(BindingContext)

Bağlama öğesinin belirli bir kanal türü için kanal fabrikası oluşturup oluşturamayacağını gösteren bir değer döndürür.

CanBuildChannelListener<TChannel>(BindingContext)

Bağlama öğesinin belirli bir kanal türü için dinleyici oluşturup oluşturamayacağını gösteren bir değer döndürür.

Clone()

Türetilmiş bir sınıfta geçersiz kılındığında, bağlama öğesi nesnesinin bir kopyasını döndürür.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetProperty<T>(BindingContext)

Türetilmiş bir sınıfta geçersiz kılındığında, varsa, bağlama yığınındaki uygun katmandan istenen türü belirlenmiş bir nesneyi döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır