CustomBinding Classe

Definição

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
CustomBinding
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:

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)

Aplica-se a