BindingElement Osztály

Definíció

A csatornagyárakat és a csatornafigyelőket a kimenő és bejövő üzenetek feldolgozásához használt különböző típusú csatornákhoz építő kötések elemei.

public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
Öröklődés
BindingElement
Származtatott

Példák

Az alábbi példa bemutatja, hogyan adhat hozzá átviteli kötési elemet egy egyéni kötéshez, majd hogyan hozhat létre egy csatornafigyelőt, amely képes fogadni a bejövő üzeneteket.

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

Megjegyzések

A kötések olyan kötéselemek rendezett készletéből állnak, amelyek ebből az absztrakt alaposztályból öröklődnek. Az TransportBindingElement osztály örökli az BindingElement osztályt.

Ha csak a csatornamodellt használja, nem kötelező kötési és kötési elemet létrehozni az átvitelhez. A csatornagyáron és a figyelőn keresztül mindent elvégezhet, amíg nyilvánossá teszik őket.

A Windows kommunikációs alaprendszer (WCF) szolgáltatásmodell egy gyári mintát használ, ahol a kötés a csatornaverem létrehozásához használatos. Ha a WCF szolgáltatásmodellt szeretné használni, akkor egy átviteli kötési elem használata szükséges. Ezt a kötési elemet érdemes kötésbe helyezni, mert ez nem követeli meg, hogy a felhasználók saját egyéni kötést hozzanak létre az átvitelhez. A legjobb, ha kötési és kötési elemet is létrehoz, és elrejti a csatorna-előállítót és a figyelőt a szerelvényen belül.

A küldő oldalon egy kötést használunk egy IChannelFactory, amely viszont létrehoz egy csatorna vermet, és visszaad egy hivatkozást a verem legfelső csatornájára. Az alkalmazás ezután ezzel a csatornával küldhet üzeneteket.

Hasonlóképpen, a fogadó oldalon egy kötést használunk a IChannelListenerbejövő üzeneteket figyelő kötés létrehozásához. A IChannelListener csatornavermek létrehozásával és az alkalmazásnak a felső csatornára mutató hivatkozás átadásával üzeneteket küld a figyelési alkalmazásnak. Az alkalmazás ezt a csatornát használja a bejövő üzenetek fogadásához.

Note

Ha olyan üzenetfejléceket ad hozzá, amelyeket titkosítottnak kell lennie, akkor a kéréskor ChannelProtectionRequirementsvissza kell adnia egy GetProperty<T>(BindingContext) példányt a ChannelProtectionRequirements metódus követelményeivel.

Konstruktorok

Name Description
BindingElement()

Inicializálja a BindingElement osztály új példányát.

BindingElement(BindingElement)

Inicializálja az BindingElement osztály új példányát egy megadott kötéselemből.

Metódusok

Name Description
BuildChannelFactory<TChannel>(BindingContext)

Inicializál egy csatorna-előállítót egy adott típusú csatornák létrehozásához a kötési környezetből.

BuildChannelListener<TChannel>(BindingContext)

Inicializál egy csatornafigyelőt egy adott típusú csatornák elfogadásához a kötési környezetből.

CanBuildChannelFactory<TChannel>(BindingContext)

Egy értéket ad vissza, amely jelzi, hogy a kötési elem képes-e csatorna-előállítót létrehozni egy adott csatornatípushoz.

CanBuildChannelListener<TChannel>(BindingContext)

Olyan értéket ad vissza, amely jelzi, hogy a kötési elem képes-e figyelőt létrehozni egy adott csatornatípushoz.

Clone()

Ha egy származtatott osztályban felül van bírálva, a kötéselem-objektum másolatát adja vissza.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetProperty<T>(BindingContext)

Ha egy származtatott osztályban felül van bírálva, a kötési verem megfelelő rétegéből egy gépelt objektumot ad vissza, ha van ilyen.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: