BindingElement Classe

Définition

Éléments des liaisons qui créent les fabriques de canaux et les écouteurs de canal pour différents types de canaux utilisés pour traiter les messages sortants et entrants.

public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
Héritage
BindingElement
Dérivé

Exemples

L’exemple suivant montre comment ajouter un élément de liaison de transport à une liaison personnalisée, puis générer un écouteur de canal capable d’accepter les messages entrants.

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

Remarques

Une liaison se compose d’un ensemble ordonné d’éléments de liaison qui héritent de cette classe de base abstraite. La TransportBindingElement classe hérite de la BindingElement classe.

La création d’un élément de liaison et de liaison pour votre transport est facultative si vous utilisez simplement le modèle de canal. Il est possible de faire tout ce dont vous avez besoin via la fabrique de canaux et l’écouteur tant qu’ils sont rendus publics.

Le modèle de service Windows Communication Foundation (WCF) utilise un modèle de fabrique où la liaison est utilisée pour créer la pile de canaux. Si vous souhaitez utiliser le modèle de service WCF, l’utilisation d’un élément de liaison de transport est requise. Le placement de cet élément de liaison dans une liaison est une bonne pratique, car il supprime la nécessité pour les utilisateurs de créer leur propre liaison personnalisée pour votre transport. Il est préférable de créer à la fois une liaison et un élément de liaison, et de masquer la fabrique de canal et l’écouteur à l’intérieur de l’assembly.

Côté envoi, une liaison est utilisée pour générer un IChannelFactory, qui génère à son tour une pile de canaux et retourne une référence au canal supérieur de la pile. L’application peut ensuite utiliser ce canal pour envoyer des messages.

De même, côté réception, une liaison est utilisée pour générer un IChannelListener, qui écoute les messages entrants. Le IChannelListener message fournit des messages à l’application d’écoute en créant des piles de canaux et en fournissant à l’application une référence au canal supérieur. L’application utilise ensuite ce canal pour recevoir des messages entrants.

Note

Si vous ajoutez des en-têtes de message qui doivent être chiffrés, vous devez renvoyer une ChannelProtectionRequirements instance avec vos exigences de la GetProperty<T>(BindingContext) méthode lorsque vous y êtes invité ChannelProtectionRequirements.

Constructeurs

Nom Description
BindingElement()

Initialise une nouvelle instance de la classe BindingElement.

BindingElement(BindingElement)

Initialise une nouvelle instance de la BindingElement classe à partir d’un élément de liaison spécifié.

Méthodes

Nom Description
BuildChannelFactory<TChannel>(BindingContext)

Initialise une fabrique de canaux pour produire des canaux d’un type spécifié à partir du contexte de liaison.

BuildChannelListener<TChannel>(BindingContext)

Initialise un écouteur de canal pour accepter les canaux d’un type spécifié à partir du contexte de liaison.

CanBuildChannelFactory<TChannel>(BindingContext)

Retourne une valeur qui indique si l’élément de liaison peut générer une fabrique de canaux pour un type spécifique de canal.

CanBuildChannelListener<TChannel>(BindingContext)

Retourne une valeur qui indique si l’élément de liaison peut générer un écouteur pour un type spécifique de canal.

Clone()

En cas de substitution dans une classe dérivée, retourne une copie de l’objet d’élément de liaison.

Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetProperty<T>(BindingContext)

En cas de substitution dans une classe dérivée, retourne un objet typé demandé, le cas échéant, à partir de la couche appropriée dans la pile de liaisons.

GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

S’applique à