CustomBinding Clase

Definición

Define un enlace de una lista de elementos de enlace.

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
Herencia
CustomBinding
Atributos

Ejemplos

En el siguiente ejemplo de código se muestra cómo crear un objeto CustomBinding utilizando un ReliableSessionBindingElement y un HttpTransportBindingElement

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

Comentarios

Utilice un enlace personalizado cuando uno de los enlaces proporcionados por el sistema no cumpla los requisitos del servicio. Se pudo utilizar un enlace personalizado, por ejemplo, para habilitar el uso de un nuevo transporte o un nuevo codificador en un punto de conexión de servicio.

Un enlace personalizado se construye utilizando uno de CustomBinding de una colección de elementos de enlace que se apilan en un orden específico:

La tabla siguiente resume las opciones de cada nivel.

Nivel Opciones Obligatorio
Flujo de transacciones TransactionFlowBindingElement No
Confiabilidad ReliableSessionBindingElement No
Seguridad Simétrico, Asimétrico, Nivel de transporte No
Cambiar forma CompositeDuplexBindingElement No
Actualizaciones de transporte Secuencia de SSL, secuencia de Windows, Resolución del mismo nivel No
Encoding Texto, binario, MTOM, personalizado
Transporte TCP, canalizaciones con nombre, http, HTTPS, versiones de MSMQ, personalizado

Además, puede definir sus propios elementos de enlace e insertarlos entre cualquiera de las capas definidas anteriores.

Para obtener una explicación sobre cómo usar un enlace personalizado para modificar un enlace proporcionado por el sistema, consulte How to: Customize a System-Provided Binding.

Nota

Al llamar a un servicio WCF compilado con .NET Framework 4.0 o posterior desde una aplicación cliente WCF compilada con .NET Framework 3.5 o versiones anteriores, el archivo de configuración generado por svcutil.exe o agregando una referencia de servicio de Visual Studio contendrá el atributo de validez en la configuración de enlace. El entorno de ejecución de .NET Framework 3.5 no reconoce este atributo y la aplicación producirá un ConfigurationErrorsException con el mensaje "Validez de atributo no reconocido". Para solucionar este problema, quite el atributo de validez de la configuración del enlace.

Constructores

CustomBinding()

Inicializa una nueva instancia de la clase CustomBinding.

CustomBinding(Binding)

Inicializa una nueva instancia de la clase CustomBinding a partir de los valores un enlace especificado.

CustomBinding(BindingElement[])

Inicializa una nueva instancia de la clase CustomBinding a partir de una matriz de elementos de enlace.

CustomBinding(IEnumerable<BindingElement>)

Inicializa una nueva instancia de la clase CustomBinding con los elementos de enlace de una pila del canal completa.

CustomBinding(String)

Inicializa una nueva instancia de la clase CustomBinding.

CustomBinding(String, String, BindingElement[])

Inicializa una nueva instancia de la clase CustomBinding de una matriz de elementos de enlace con nombre y espacio de nombres especificados.

Propiedades

CloseTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se cierre antes de que el transporte genere una excepción.

(Heredado de Binding)
Elements

Obtiene los elementos de enlace del enlace personalizado.

MessageVersion

Obtiene la versión de mensaje utilizada por los clientes y servicios configurados con el enlace.

(Heredado de Binding)
Name

Obtiene o establece el nombre del enlace.

(Heredado de Binding)
Namespace

Obtiene o establece el espacio de nombres XML del enlace.

(Heredado de Binding)
OpenTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se abra antes de que el transporte genere una excepción.

(Heredado de Binding)
ReceiveTimeout

Obtiene o establece el intervalo de tiempo que una conexión puede permanecer inactiva, durante el cual no se recibe ningún mensaje de la aplicación, antes de interrumpir la conexión.

(Heredado de Binding)
Scheme

Obtiene el esquema URI para el transporte utilizado por el enlace personalizado.

SendTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una operación de escritura se complete antes de que el transporte genere una excepción.

(Heredado de Binding)

Métodos

BuildChannelFactory<TChannel>(BindingParameterCollection)

Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y satisface las características especificadas por una colección de parámetros de enlace.

(Heredado de Binding)
BuildChannelFactory<TChannel>(Object[])

Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y eso satisface las características especificadas por una matriz de objetos.

(Heredado de Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y eso satisface las características especificadas por una colección de parámetros de enlace.

(Heredado de Binding)
BuildChannelListener<TChannel>(Object[])

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

(Heredado de Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga la colección especificada de parámetros de enlace.

(Heredado de Binding)
CanBuildChannelFactory<TChannel>(Object[])

Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga los requisitos especificados por una matriz de objetos.

(Heredado de Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace.

(Heredado de Binding)
CanBuildChannelListener<TChannel>(Object[])

Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace.

(Heredado de Binding)
CreateBindingElements()

Devuelve una colección genérica de los elementos de enlace del enlace personalizado.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetProperty<T>(BindingParameterCollection)

Devuelve un objeto escrito solicitado de la capa adecuada en la pila de enlace si está presente.

(Heredado de Binding)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ShouldSerializeName()

Devuelve un valor si se debe serializar el nombre del enlace.

(Heredado de Binding)
ShouldSerializeNamespace()

Devuelve un valor si se debe serializar el espacio de nombres.

(Heredado de Binding)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a