Condividi tramite


CustomBinding Classe

Definizione

Definisce un'associazione da un elenco di elementi di associazione.

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
Ereditarietà
CustomBinding
Attributi

Esempio

Nell'esempio seguente viene illustrato come creare un oggetto CustomBinding utilizzando ReliableSessionBindingElement e 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

Commenti

Usare un'associazione personalizzata quando una delle associazioni fornite dal sistema non soddisfa i requisiti del servizio. Un'associazione personalizzata potrebbe essere usata, ad esempio, per abilitare l'uso di un nuovo trasporto o di un nuovo codificatore a un endpoint del servizio.

Un'associazione personalizzata viene costruita usando uno dei CustomBinding da una raccolta di elementi di associazione in uno stack in un ordine specifico:

Nella tabella seguente viene fornito un riepilogo delle opzioni per ogni livello.

Livello Opzioni Obbligatoria
Flusso transazioni TransactionFlowBindingElement No
Affidabilità ReliableSessionBindingElement No
Security Simmetrico, asimmetrico, livello di trasporto No
Cambio di forma CompositeDuplexBindingElement No
Aggiornamenti del trasporto Flusso SSL, flusso di Windows, resolver Peer No
Codifica Testo, binario, MTOM, personalizzata
Trasporto TCP, named pipe, HTTP, HTTPS, versioni di MSMQ, personalizzato

È inoltre possibile definire elementi di associazione personalizzati e inserirli tra i livelli appena elencati.

Per una discussione su come usare un'associazione personalizzata per modificare un'associazione fornita dal sistema, vedere Procedura: Personalizzare un'associazione System-Provided.

Nota

Quando si chiama un servizio WCF compilato con .NET Framework 4.0 o versione successiva da un'applicazione client WCF compilata con .NET Framework 3.5 o versioni precedenti, il file di configurazione generato da svcutil.exe o l'aggiunta di un riferimento al servizio da Visual Studio conterrà l'attributo di validità nella configurazione dell'associazione. Questo attributo non viene riconosciuto dal runtime di .NET Framework 3.5 e l'applicazione genererà un ConfigurationErrorsException con il messaggio "Validità dell'attributo non riconosciuto". Per aggirare questo problema, rimuovere l'attributo di validità dalla configurazione di associazione.

Costruttori

CustomBinding()

Inizializza una nuova istanza della classe CustomBinding.

CustomBinding(Binding)

Inizializza una nuova istanza della classe CustomBinding dai valori di un'associazione specificata.

CustomBinding(BindingElement[])

Inizializza una nuova istanza della classe CustomBinding da una matrice di elementi di associazione.

CustomBinding(IEnumerable<BindingElement>)

Inizializza una nuova istanza della classe CustomBinding con gli elementi di associazione da un stack dei canali completo.

CustomBinding(String)

Inizializza una nuova istanza della classe CustomBinding.

CustomBinding(String, String, BindingElement[])

Inizializza una nuova istanza della classe CustomBinding da una matrice di elementi di associazione con un nome e uno spazio dei nomi specificati.

Proprietà

CloseTimeout

Ottiene o imposta l'intervallo di tempo fornito per la chiusura di una connessione prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
Elements

Ottiene gli elementi di associazione dell'associazione personalizzata.

MessageVersion

Ottiene la versione del messaggio utilizzata dai client e dai servizi configurati con l'associazione.

(Ereditato da Binding)
Name

Ottiene o imposta il nome dell'associazione.

(Ereditato da Binding)
Namespace

Ottiene o imposta lo spazio dei nomi XML dell'associazione.

(Ereditato da Binding)
OpenTimeout

Ottiene o imposta l'intervallo di tempo fornito per l'apertura di una connessione prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
ReceiveTimeout

Ottiene o imposta l'intervallo di tempo durante il quale una connessione rimane inattiva, senza ricevere messaggi dell'applicazione, prima di essere rilasciata.

(Ereditato da Binding)
Scheme

Ottiene lo schema URI per il trasporto utilizzato dall'associazione personalizzata.

SendTimeout

Ottiene o imposta l'intervallo di tempo fornito per il completamento di un'operazione di scrittura prima che il trasporto generi un'eccezione.

(Ereditato da Binding)

Metodi

BuildChannelFactory<TChannel>(BindingParameterCollection)

Compila lo stack della channel factory nel client che crea un tipo specificato di canale e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione.

(Ereditato da Binding)
BuildChannelFactory<TChannel>(Object[])

Compila lo stack della channel factory nel client che crea un tipo specificato di canale e che soddisfa le funzionalità specificate da una matrice di oggetti.

(Ereditato da Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Compila il listener del canale nel servizio che accetta un tipo specificato di canale e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Restituisce un valore che indica se l'associazione corrente può compilare uno stack della channel factory nel client che soddisfa la raccolta dei parametri di associazione specificati.

(Ereditato da Binding)
CanBuildChannelFactory<TChannel>(Object[])

Restituisce un valore che indica se l'associazione corrente può compilare uno stack della channel factory nel client che soddisfa i requisiti specificati da una matrice di oggetti.

(Ereditato da Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Restituisce un valore che indica se l'associazione corrente può compilare uno stack del channel listener nel servizio che soddisfa la raccolta dei parametri di associazione specificati.

(Ereditato da Binding)
CanBuildChannelListener<TChannel>(Object[])

Restituisce un valore che indica se l'associazione corrente può compilare uno stack del channel listener nel servizio che soddisfa i criteri specificati in una matrice di oggetti.

(Ereditato da Binding)
CreateBindingElements()

Restituisce una raccolta generica degli elementi di associazione dell'associazione personalizzata.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperty<T>(BindingParameterCollection)

Se presente, restituisce un oggetto tipizzato richiesto dal livello appropriato nello stack dell'associazione.

(Ereditato da Binding)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ShouldSerializeName()

Indica se il nome dell'associazione deve essere serializzato.

(Ereditato da Binding)
ShouldSerializeNamespace()

Indica se lo spazio dei nomi dell'associazione deve essere serializzato.

(Ereditato da Binding)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a