CustomBinding Clase

Definición

Define un enlace de una lista de elementos de enlace.Defines a binding from a list of binding elements.

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 HttpTransportBindingElementThe following example shows how to create a CustomBinding object using a ReliableSessionBindingElement and an 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.Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. 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.A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

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:A custom binding is constructed using one of the CustomBinding from a collection of binding elements that are "stacked" in a specific order:

La tabla siguiente resume las opciones de cada nivel.The following table summarizes the options for each layer.

NivelLayer OpcionesOptions ObligatorioRequired
Flujo de transaccionesTransaction Flow TransactionFlowBindingElement NoNo
ConfiabilidadReliability ReliableSessionBindingElement NoNo
SeguridadSecurity Simétrico, Asimétrico, Nivel de transporteSymmetric, Asymmetric, Transport-Level NoNo
Cambiar formaShape Change CompositeDuplexBindingElement NoNo
Actualizaciones de transporteTransport Upgrades Secuencia de SSL, secuencia de Windows, Resolución del mismo nivelSSL stream, Windows stream, Peer Resolver NoNo
EncodingEncoding Texto, binario, MTOM, personalizadoText, Binary, MTOM, Custom Yes
TransporteTransport TCP, canalizaciones con nombre, http, HTTPS, versiones de MSMQ, personalizadoTCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom Yes

Además, puede definir sus propios elementos de enlace e insertarlos entre cualquiera de las capas definidas anteriores.In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

Para obtener información sobre cómo utilizar un enlace personalizado para modificar un enlace proporcionado por el sistema, consulte Cómo: personalizar un enlace de System-Provided.For a discussion on how to use a custom binding to modify a system-provided binding, see How to: Customize a System-Provided Binding.

Nota

Cuando se llama a un servicio WCF compilado con .NET Framework 4,0 o posterior desde una aplicación cliente de WCF creada con .NET Framework 3,5 o anterior, el archivo de configuración generado por svcutil.exe o al agregar una referencia de servicio desde Visual Studio contendrá el atributo de validez en la configuración de enlace.When calling a WCF service built with .NET Framework 4.0 or later from a WCF client application built with .NET Framework 3.5 or earlier, the configuration file generated by svcutil.exe or adding a service reference from Visual Studio will contain the validity attribute in the binding configuration. El tiempo de ejecución de .NET Framework 3,5 no reconoce este atributo y la aplicación producirá una excepción ConfigurationErrorsException con el mensaje "validez de atributo no reconocido".This attribute is not recognized by the .NET Framework 3.5 runtime and the application will thrown an ConfigurationErrorsException with the message "Unrecognized attribute validity". Para solucionar este problema, quite el atributo de validez de la configuración del enlace.To workaround this problem, remove the validity attribute from the binding configuration.

Constructores

CustomBinding()

Inicializa una nueva instancia de la clase CustomBinding.Initializes a new instance of the CustomBinding class.

CustomBinding(Binding)

Inicializa una nueva instancia de la clase CustomBinding a partir de los valores un enlace especificado.Initializes a new instance of the CustomBinding class from the values of a specified binding.

CustomBinding(BindingElement[])

Inicializa una nueva instancia de la clase CustomBinding a partir de una matriz de elementos de enlace.Initializes a new instance of the CustomBinding class from an array of binding elements.

CustomBinding(IEnumerable<BindingElement>)

Inicializa una nueva instancia de la clase CustomBinding con los elementos de enlace de una pila del canal completa.Initializes a new instance of the CustomBinding class with the binding elements from a complete channel stack.

CustomBinding(String)

Inicializa una nueva instancia de la clase CustomBinding.Initializes a new instance of the CustomBinding class.

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.Initializes a new instance of the CustomBinding class from an array of binding elements with a specified name and namespace.

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.Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

(Heredado de Binding)
Elements

Obtiene los elementos de enlace del enlace personalizado.Gets the binding elements from the custom binding.

MessageVersion

Obtiene la versión de mensaje utilizada por los clientes y servicios configurados con el enlace.Gets the message version used by clients and services configured with the binding.

(Heredado de Binding)
Name

Obtiene o establece el nombre del enlace.Gets or sets the name of the binding.

(Heredado de Binding)
Namespace

Obtiene o establece el espacio de nombres XML del enlace.Gets or sets the XML namespace of the binding.

(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.Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

(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.Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

(Heredado de Binding)
Scheme

Obtiene el esquema URI para el transporte utilizado por el enlace personalizado.Gets the URI scheme for transport used by the custom binding.

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.Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

(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.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(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.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

(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.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

(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.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

(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.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

(Heredado de Binding)
CreateBindingElements()

Devuelve una colección genérica de los elementos de enlace del enlace personalizado.Returns a generic collection of the binding elements from the custom binding.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Devuelve un objeto escrito solicitado de la capa adecuada en la pila de enlace si está presente.Returns a typed object requested, if present, from the appropriate layer in the binding stack.

(Heredado de Binding)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ShouldSerializeName()

Devuelve un valor si se debe serializar el nombre del enlace.Returns whether the name of the binding should be serialized.

(Heredado de Binding)
ShouldSerializeNamespace()

Devuelve un valor si se debe serializar el espacio de nombres.Returns whether the namespace of the binding should be serialized.

(Heredado de Binding)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a