Associações personalizadas
Você pode usar a classe CustomBinding quando uma das associações fornecidas pelo sistema não atender aos requisitos do serviço. Todas as associações são construídas a partir de um conjunto ordenado de elementos de associação. As associações personalizadas podem ser criadas a partir de um conjunto de elementos de associação fornecidos pelo sistema ou incluir elementos de associação personalizados definidos pelo usuário. Você pode usar elementos de associação personalizados para, por exemplo, habilitar o uso de novos transportes ou codificadores em um ponto de extremidade de serviço. Para obter exemplos de trabalho, consulte Exemplos de associações personalizadas. Para saber mais, consulte <customBinding>.
Construção de uma associação personalizada
Uma associação personalizada é construída usando o construtor CustomBinding de uma coleção de elementos de associação que são "empilhados" em uma ordem específica:
Na parte superior está uma classe opcional TransactionFlowBindingElement que permite o fluxo de transações.
Em seguida, há uma classe opcional ReliableSessionBindingElement que fornece uma sessão e mecanismos de ordenação conforme definido na especificação WS-ReliableMessaging. Uma sessão pode atravessar SOAP e transportar intermediários.
Em seguida, há uma classe opcional SecurityBindingElement que fornece recursos de segurança, como autorização, autenticação, proteção e confidencialidade.
Em seguida, há uma classe opcional CompositeDuplexBindingElement que fornece a capacidade de ter comunicação duplex bidirecional com um protocolo de transporte que não dá suporte à comunicação duplex nativamente, como HTTP.
Em seguida, há uma classe opcional (OneWayBindingElement) que fornece comunicação unidirecional.
Em seguida, há um elemento de associação de segurança de fluxo opcional que pode ser um dos seguintes.
Em seguida, há um elemento necessário de associação de codificação de mensagem. Você pode usar seu próprio codificador de mensagens ou uma das três associações de codificação de mensagens:
Na parte inferior, há um elemento de transporte necessário. Você pode usar seu próprio transporte ou um dos seguintes elementos de associação de transporte que o WCF (Windows Communication Foundation) fornece:
A tabela a seguir resume as opções para cada camada.
Camada | Opções | Obrigatório |
---|---|---|
Transactions | TransactionFlowBindingElement | Não |
Confiabilidade | ReliableSessionBindingElement | Não |
Segurança | SecurityBindingElement | Não |
Codificação | Texto, binário, MTOM (mecanismo de otimização de transmissão de mensagens), personalizado | Yes |
Transport | TCP, HTTP, HTTPS, pipes nomeados (também conhecidos como IPC), P2P (ponto a ponto), enfileiramento de mensagens (também conhecido como MSMQ), personalizado | Yes |
Além disso, você pode definir seus próprios elementos de associação e inseri-los entre qualquer uma das camadas definidas anteriormente.