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 ejemplo siguiente se muestra cómo crear un CustomBinding objeto mediante ReliableSessionBindingElement y 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

Use un enlace personalizado cuando uno de los enlaces proporcionados por el sistema no cumpla los requisitos del servicio. Se podría usar 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 mediante una de las CustomBinding de una colección de elementos de enlace que se "apilan" en un orden específico:

En la tabla siguiente se resumen las opciones de cada capa.

Nivel Opciones Obligatorio
Flujo de transacciones TransactionFlowBindingElement No
Reliability ReliableSessionBindingElement No
Seguridad Simétrico, asimétrico, Transport-Level No
Cambio de forma CompositeDuplexBindingElement No
Actualizaciones de transporte Secuencia SSL, secuencia de Windows, Resolución del mismo nivel No
Encoding Texto, binario, MTOM, personalizado
Transport TCP, Canalizaciones con nombre, HTTP, HTTPS, tipos 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, vea How to: Customize a System-Provided Binding.

Note

Al llamar a un servicio WCF creado 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 agregar una referencia de servicio desde 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 iniciará una ConfigurationErrorsException con el mensaje "No reconocido la validez del atributo". Para solucionar este problema, quite el atributo de validez de la configuración de enlace.

Constructores

Nombre Description
CustomBinding()

Inicializa una nueva instancia de la clase CustomBinding.

CustomBinding(Binding)

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

CustomBinding(BindingElement[])

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

CustomBinding(IEnumerable<BindingElement>)

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

CustomBinding(String, String, BindingElement[])

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

CustomBinding(String)

Inicializa una nueva instancia de la clase CustomBinding.

Propiedades

Nombre Description
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 del mensaje utilizada por 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 se abra una conexión 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 la cual no se recibe ningún mensaje de aplicación, antes de quitarla.

(Heredado de Binding)
Scheme

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

SendTimeout

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

(Heredado de Binding)

Métodos

Nombre Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

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

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

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

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

Compila el agente de escucha de canal en el servicio que acepta un tipo de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que satisface las características especificadas.

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

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

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

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

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

Devuelve un valor que indica si el enlace actual puede crear una pila del agente de escucha de canal en el servicio que satisface la colección de parámetros de enlace especificados.

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

Devuelve un valor que indica si el enlace actual puede crear una pila del agente de escucha de canal en el servicio que cumpla los criterios especificados en una matriz de objetos.

(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 al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como la función hash predeterminada.

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

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

(Heredado de Binding)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ShouldSerializeName()

Devuelve si se debe serializar el nombre del enlace.

(Heredado de Binding)
ShouldSerializeNamespace()

Devuelve si se debe serializar el espacio de nombres del enlace.

(Heredado de Binding)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a