Esta documentación está archivada y no tiene mantenimiento.

CustomBinding (Clase)

Actualización: noviembre 2007

Define un enlace de una lista de elementos de enlace.

Espacio de nombres:  System.ServiceModel.Channels
Ensamblado:  System.ServiceModel (en System.ServiceModel.dll)

public class CustomBinding : Binding
public class CustomBinding extends Binding
public class CustomBinding extends Binding

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 extremo 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 capa.

Capa

Opciones

Necesario

Flujo de la transacción

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

Codificación

Texto, binario, MTOM, personalizado

Yes

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 discusión sobre cómo utilizar un enlace personalizado para modificar un enlace proporcionado por sistema, vea Cómo personalizar un enlace proporcionado por el sistema.

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();
}


System.Object
  System.ServiceModel.Channels.Binding
    System.ServiceModel.Channels.CustomBinding

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows Server 2003, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0

.NET Compact Framework

Compatible con: 3.5
Mostrar: