BindingElement Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Os elementos das associações que criam as fábricas de canais e os ouvintes de canal para vários tipos de canais que são usados para processar mensagens de saída e de entrada.
public ref class BindingElement abstract
public abstract class BindingElement
type BindingElement = class
Public MustInherit Class BindingElement
- Herança
-
BindingElement
- Derivado
Exemplos
O exemplo a seguir mostra como adicionar um elemento de associação de transporte a uma associação personalizada e, em seguida, criar um ouvinte de canal que possa aceitar mensagens de entrada.
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()
Comentários
Uma associação consiste em um conjunto ordenado de elementos de associação que herdam dessa classe base abstrata. A TransportBindingElement classe herda da BindingElement classe.
A criação de um elemento de associação e associação para o transporte será opcional se você estiver usando apenas o modelo de canal. É possível fazer tudo o que você precisa por meio da fábrica de canais e do ouvinte, desde que eles sejam tornados públicos.
O modelo de serviço Windows Communication Foundation (WCF) usa um padrão de fábrica em que a associação é usada para criar a pilha de canais. Se você quiser usar o modelo de serviço do WCF, será necessário usar um elemento de associação de transporte. Colocar esse elemento de associação em uma associação é uma boa prática porque remove o requisito para que os usuários criem sua própria associação personalizada para seu transporte. É melhor criar um elemento de associação e associação e ocultar a fábrica de canais e o ouvinte dentro do assembly.
No lado de envio, uma associação é usada para criar um IChannelFactory, que, por sua vez, cria uma pilha de canais e retorna uma referência ao canal superior na pilha. Em seguida, o aplicativo pode usar esse canal para enviar mensagens.
Da mesma forma, no lado receptor, uma associação é usada para criar uma IChannelListener, que escuta mensagens de entrada. O IChannelListener aplicativo de escuta fornece mensagens criando pilhas de canal e entregando ao aplicativo uma referência ao canal superior. Em seguida, o aplicativo usa esse canal para receber mensagens de entrada.
Note
Se você estiver adicionando cabeçalhos de mensagem que devem ser criptografados, deverá retornar uma ChannelProtectionRequirements instância com seus requisitos do GetProperty<T>(BindingContext) método quando solicitado ChannelProtectionRequirements.
Construtores
| Nome | Description |
|---|---|
| BindingElement() |
Inicializa uma nova instância da classe BindingElement. |
| BindingElement(BindingElement) |
Inicializa uma nova instância da classe de BindingElement um elemento de associação especificado. |
Métodos
| Nome | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
Inicializa uma fábrica de canais para produzir canais de um tipo especificado do contexto de associação. |
| BuildChannelListener<TChannel>(BindingContext) |
Inicializa um ouvinte de canal para aceitar canais de um tipo especificado do contexto de associação. |
| CanBuildChannelFactory<TChannel>(BindingContext) |
Retorna um valor que indica se o elemento de associação pode criar uma fábrica de canais para um tipo específico de canal. |
| CanBuildChannelListener<TChannel>(BindingContext) |
Retorna um valor que indica se o elemento de associação pode criar um ouvinte para um tipo específico de canal. |
| Clone() |
Quando substituído em uma classe derivada, retorna uma cópia do objeto de elemento de associação. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função hash predefinida. (Herdado de Object) |
| GetProperty<T>(BindingContext) |
Quando substituído em uma classe derivada, retorna um objeto digitado solicitado, se presente, da camada apropriada na pilha de associação. |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |