CustomBinding 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.
Define uma associação de uma lista de elementos de associação.
public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
inherit Binding
Public Class CustomBinding
Inherits Binding
- Herança
- Atributos
Exemplos
O exemplo a seguir mostra como criar um CustomBinding objeto usando um e um ReliableSessionBindingElementHttpTransportBindingElement
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
// Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
// Add a MEX endpoint.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
serviceHost.Description.Behaviors.Add(smb);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")
' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
' Create a custom binding that contains two binding elements.
Dim reliableSession As New ReliableSessionBindingElement()
reliableSession.Ordered = True
Dim httpTransport As New HttpTransportBindingElement()
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
Dim binding As New CustomBinding(reliableSession, httpTransport)
' Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")
' Add a MEX endpoint.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
serviceHost.Description.Behaviors.Add(smb)
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
Comentários
Use uma associação personalizada quando uma das associações fornecidas pelo sistema não atender aos requisitos do serviço. Uma associação personalizada pode ser usada, por exemplo, para habilitar o uso de um novo transporte ou de um novo codificador em um ponto de extremidade de serviço.
Uma associação personalizada é construída usando uma de CustomBinding uma coleção de elementos de associação que são "empilhados" em uma ordem específica:
Na parte superior está um opcional TransactionFlowBindingElement que permite transações de fluxo.
Em seguida, é um opcional ReliableSessionBindingElement que fornece um mecanismo de sessão e ordenação, conforme definido na especificação WS-ReliableMessaging. Essa noção de uma sessão pode atravessar SOAP e transportar intermediários.
Em seguida, há um elemento opcional de associação de segurança que fornece recursos de segurança, como autorização, autenticação, proteção e confidencialidade. Os seguintes elementos de associação de segurança são fornecidos pelo WCF (Windows Communication Foundation):
Em seguida, estão os padrões de mensagem opcionais especificados pelos elementos de associação:
Em seguida, estão os elementos de associação de upgrades/auxiliares de transporte opcionais:
Em seguida, há um elemento necessário de associação de codificação de mensagem. Você pode usar seu próprio transporte ou usar uma das seguintes 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 usar um dos elementos de associação de transporte fornecidos pelo WCF (Windows Communication Foundation):
A tabela a seguir resume as opções para cada camada.
| Camada | Opções | Obrigatório |
|---|---|---|
| Fluxo de Transação | TransactionFlowBindingElement | No |
| Reliability | ReliableSessionBindingElement | No |
| Segurança | Simétrico, assimétrico, Transport-Level | No |
| Alteração de forma | CompositeDuplexBindingElement | No |
| Atualizações de transporte | Fluxo SSL, fluxo do Windows, Resolvedor de Pares | No |
| Codificação | Texto, Binário, MTOM, Personalizado | Yes |
| Transport | TCP, Pipes Nomeados, HTTP, HTTPS, sabores de 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.
Para obter uma discussão sobre como usar uma associação personalizada para modificar uma associação fornecida pelo sistema, consulte Como personalizar uma associação de System-Provided.
Note
Ao chamar um serviço WCF criado com .NET Framework 4.0 ou posterior de um aplicativo cliente WCF criado com .NET Framework 3.5 ou anterior, o arquivo de configuração gerado por svcutil.exe ou a adição de uma referência de serviço de Visual Studio conterá o atributo de validade na configuração de associação. Esse atributo não é reconhecido pelo runtime do .NET Framework 3.5 e o aplicativo gerará um ConfigurationErrorsException com a mensagem "Validade de atributo não reconhecida". Para solucionar esse problema, remova o atributo de validade da configuração de associação.
Construtores
| Nome | Description |
|---|---|
| CustomBinding() |
Inicializa uma nova instância da classe CustomBinding. |
| CustomBinding(Binding) |
Inicializa uma nova instância da classe dos CustomBinding valores de uma associação especificada. |
| CustomBinding(BindingElement[]) |
Inicializa uma nova instância da classe de CustomBinding uma matriz de elementos de associação. |
| CustomBinding(IEnumerable<BindingElement>) |
Inicializa uma nova instância da CustomBinding classe com os elementos de associação de uma pilha de canal completa. |
| CustomBinding(String, String, BindingElement[]) |
Inicializa uma nova instância da CustomBinding classe de uma matriz de elementos de associação com um namespace e um nome especificados. |
| CustomBinding(String) |
Inicializa uma nova instância da classe CustomBinding. |
Propriedades
| Nome | Description |
|---|---|
| CloseTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma conexão seja fechada antes que o transporte gere uma exceção. (Herdado de Binding) |
| Elements |
Obtém os elementos de associação da associação personalizada. |
| MessageVersion |
Obtém a versão da mensagem usada por clientes e serviços configurados com a associação. (Herdado de Binding) |
| Name |
Obtém ou define o nome da associação. (Herdado de Binding) |
| Namespace |
Obtém ou define o namespace XML da associação. (Herdado de Binding) |
| OpenTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma conexão seja aberta antes que o transporte gere uma exceção. (Herdado de Binding) |
| ReceiveTimeout |
Obtém ou define o intervalo de tempo em que uma conexão pode permanecer inativa, durante a qual nenhuma mensagem de aplicativo é recebida, antes de ser descartada. (Herdado de Binding) |
| Scheme |
Obtém o esquema de URI para transporte usado pela associação personalizada. |
| SendTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma operação de gravação seja concluída antes que o transporte gere uma exceção. (Herdado de Binding) |
Métodos
| Nome | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Cria a pilha de fábrica de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma coleção de parâmetros de associação. (Herdado de Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Cria a pilha de fábrica de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma matriz de objetos. (Herdado de Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados por uma coleção de parâmetros de associação. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados. (Herdado de Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Retorna um valor que indica se a associação atual pode criar uma pilha de fábrica de canais no cliente que satisfaça a coleção de parâmetros de associação especificados. (Herdado de Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Retorna um valor que indica se a associação atual pode criar uma pilha de fábrica de canais no cliente que atenda aos requisitos especificados por uma matriz de objetos. (Herdado de Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canal no serviço que satisfaça a coleção de parâmetros de associação especificados. (Herdado de Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canal no serviço que atenda aos critérios especificados em uma matriz de objetos. (Herdado de Binding) |
| CreateBindingElements() |
Retorna uma coleção genérica dos elementos de associação da associação personalizada. |
| 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>(BindingParameterCollection) |
Retorna um objeto digitado solicitado, se presente, da camada apropriada na pilha de associação. (Herdado de Binding) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ShouldSerializeName() |
Retorna se o nome da associação deve ser serializado. (Herdado de Binding) |
| ShouldSerializeNamespace() |
Retorna se o namespace da associação deve ser serializado. (Herdado de Binding) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |