CustomBinding Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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:
Längst upp finns ett valfritt TransactionFlowBindingElement alternativ som tillåter flödande transaktioner.
Nästa är ett valfritt ReliableSessionBindingElement som tillhandahåller en sessions- och beställningsmekanism enligt definitionen i WS-ReliableMessaging-specifikationen. Denna uppfattning om en session kan korsa SOAP och transportförmedlare.
Nästa är ett valfritt säkerhetsbindningselement som tillhandahåller säkerhetsfunktioner som auktorisering, autentisering, skydd och konfidentialitet. Följande säkerhetsbindningselement tillhandahålls av Windows Communication Foundation (WCF):
Nästa steg är de valfria meddelandemönster som anges av bindningselement:
Härnäst är de valfria transportuppgraderingar/hjälpelementen som binder element:
Nästa är ett obligatoriskt meddelandekodningsbindningselement. Du kan använda din egen transport eller använda någon av följande meddelandekodningsbindningar:
Längst ned finns ett obligatoriskt transportelement. Du kan använda din egen transport eller använda något av de transportbindningselement som tillhandahålls av Windows Communication Foundation (WCF):
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) |