CustomBinding Klass

Definition

Definierar en bindning från en lista med bindningselement.

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
Arv
CustomBinding
Attribut

Exempel

I följande exempel visas hur du skapar ett CustomBinding objekt med hjälp av en ReliableSessionBindingElement och en 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

Kommentarer

Använd en anpassad bindning när en av de systembaserade bindningarna inte uppfyller kraven för din tjänst. En anpassad bindning kan till exempel användas för att aktivera användning av en ny transport eller en ny kodare vid en tjänstslutpunkt.

En anpassad bindning skapas med hjälp av en av CustomBinding de från en samling bindningselement som är "staplade" i en viss ordning:

I följande tabell sammanfattas alternativen för varje lager.

Skikt Options Obligatoriskt
Transaktionsflöde TransactionFlowBindingElement No
Reliability ReliableSessionBindingElement No
Security Symmetrisk, asymmetrisk, Transport-Level No
Figurändring CompositeDuplexBindingElement No
Transportuppgraderingar SSL-ström, Windows-ström, Peer Resolver No
Kodning Text, Binär, MTOM, Anpassad Yes
Transport TCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom Yes

Dessutom kan du definiera dina egna bindningselement och infoga dem mellan något av de föregående definierade lagren.

En diskussion om hur du använder en anpassad bindning för att ändra en bindning som tillhandahålls av systemet finns i Så här: Anpassa en System-Provided-bindning.

Note

När du anropar en WCF-tjänst som skapats med .NET Framework 4.0 eller senare från ett WCF-klientprogram som skapats med .NET Framework 3.5 eller tidigare, innehåller konfigurationsfilen som genereras av svcutil.exe eller lägger till en tjänstreferens från Visual Studio giltighetsattributet i bindningskonfigurationen. Det här attributet identifieras inte av .NET Framework 3.5-körningen och programmet utlöser en ConfigurationErrorsException med meddelandet "Okänd attribut giltighet". Lös problemet genom att ta bort attributet validitet från bindningskonfigurationen.

Konstruktorer

Name Description
CustomBinding()

Initierar en ny instans av CustomBinding klassen.

CustomBinding(Binding)

Initierar en ny instans av CustomBinding klassen från värdena för en angiven bindning.

CustomBinding(BindingElement[])

Initierar en ny instans av CustomBinding klassen från en matris med bindningselement.

CustomBinding(IEnumerable<BindingElement>)

Initierar en ny instans av CustomBinding klassen med bindningselementen från en fullständig kanalstack.

CustomBinding(String, String, BindingElement[])

Initierar en ny instans av CustomBinding klassen från en matris med bindningselement med ett angivet namn och namnområde.

CustomBinding(String)

Initierar en ny instans av CustomBinding klassen.

Egenskaper

Name Description
CloseTimeout

Hämtar eller anger tidsintervallet för en anslutning som ska stängas innan transporten skapar ett undantag.

(Ärvd från Binding)
Elements

Hämtar bindningselementen från den anpassade bindningen.

MessageVersion

Hämtar meddelandeversionen som används av klienter och tjänster som konfigurerats med bindningen.

(Ärvd från Binding)
Name

Hämtar eller anger namnet på bindningen.

(Ärvd från Binding)
Namespace

Hämtar eller anger XML-namnområdet för bindningen.

(Ärvd från Binding)
OpenTimeout

Hämtar eller anger tidsintervallet för en anslutning som ska öppnas innan transporten skapar ett undantag.

(Ärvd från Binding)
ReceiveTimeout

Hämtar eller anger det tidsintervall som en anslutning kan förbli inaktiv under vilken inga programmeddelanden tas emot innan den tas bort.

(Ärvd från Binding)
Scheme

Hämtar URI-schemat för transport som används av den anpassade bindningen.

SendTimeout

Hämtar eller anger tidsintervallet för en skrivåtgärd som ska slutföras innan transporten genererar ett undantag.

(Ärvd från Binding)

Metoder

Name Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Skapar kanalfabriksstacken på klienten som skapar en angiven typ av kanal och som uppfyller de funktioner som anges av en samling bindningsparametrar.

(Ärvd från Binding)
BuildChannelFactory<TChannel>(Object[])

Skapar kanalfabriksstacken på klienten som skapar en angiven typ av kanal och som uppfyller de funktioner som anges av en objektmatris.

(Ärvd från Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de funktioner som anges av en samling bindningsparametrar.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanalfabriksstack på klienten som uppfyller samlingen med angivna bindningsparametrar.

(Ärvd från Binding)
CanBuildChannelFactory<TChannel>(Object[])

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanalfabriksstack på klienten som uppfyller de krav som anges av en objektmatris.

(Ärvd från Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanallyssningsstack på tjänsten som uppfyller den angivna samlingen med bindningsparametrar.

(Ärvd från Binding)
CanBuildChannelListener<TChannel>(Object[])

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanallyssningsstack på tjänsten som uppfyller de villkor som anges i en matris med objekt.

(Ärvd från Binding)
CreateBindingElements()

Returnerar en allmän samling bindningselement från den anpassade bindningen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetProperty<T>(BindingParameterCollection)

Returnerar ett typat objekt som begärs, om det finns, från lämpligt lager i bindningsstacken.

(Ärvd från Binding)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ShouldSerializeName()

Returnerar om namnet på bindningen ska serialiseras.

(Ärvd från Binding)
ShouldSerializeNamespace()

Returnerar om bindningens namnområde ska serialiseras.

(Ärvd från Binding)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för