BindingElement Classe

Définition

Éléments des liaisons qui génèrent les fabriques et les écouteurs de canal pour différents types de canaux utilisés pour traiter des 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 indique comment ajouter un élément de liaison de transport à une liaison personnalisée, puis générer un écouteur de canal capable d’accepter des 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 jeu ordonné d'éléments de liaison qui héritent de cette classe de base abstraite. La classe TransportBindingElement hérite de la classe BindingElement.

La création d'une liaison et d'un élément de liaison relatifs au transport est facultative si vous utilisez simplement le modèle de canal. Vous pouvez effectuer toutes les tâches dont vous avez besoin par le biais de la fabrique et de l'écouteur de canal, tant que ceux-ci 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 obligatoire. Il est recommandé de placer cet élément dans une liaison pour que les utilisateurs n’aient pas à créer leur propre liaison personnalisée pour le transport. Il vaut mieux créer à la fois une liaison et un élément de liaison, et masquer la fabrique et l'écouteur de canal dans l'assembly.

À l’envoi, une liaison permet de générer une fabrique IChannelFactory qui génère à son tour une pile de canaux et renvoie une référence au canal figurant en haut de la pile. L'application peut utiliser ensuite ce canal pour envoyer des messages.

De même, à la réception, une liaison permet de générer un objet IChannelListener chargé d'écouter les messages entrants. IChannelListener envoie des messages à l'application qui écoute en créant des piles de canaux et en remettant à l'application une référence au canal supérieur. L'application utilise ensuite ce canal pour recevoir les messages entrants.

Notes

Si vous ajoutez les en-têtes de message à chiffrer, vous devez retourner une instance ChannelProtectionRequirements avec vos spécifications à partir de la méthode GetProperty<T>(BindingContext) lorsque ChannelProtectionRequirements vous est demandé.

Constructeurs

BindingElement()

Initialise une nouvelle instance de la classe BindingElement.

BindingElement(BindingElement)

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

Méthodes

BuildChannelFactory<TChannel>(BindingContext)

Initialise une fabrique de canal pour générer 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 donné issus du contexte de liaison.

CanBuildChannelFactory<TChannel>(BindingContext)

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

CanBuildChannelListener<TChannel>(BindingContext)

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

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

Fait office 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é, s’il existe, à partir de la couche appropriée de la pile des éléments de liaison.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

S’applique à