CustomBinding Klas

Definitie

Definieert een binding uit een lijst met bindingselementen.

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
Overname
CustomBinding
Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u hoe u een CustomBinding object maakt met behulp van een ReliableSessionBindingElement en een 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

Opmerkingen

Gebruik een aangepaste binding wanneer een van de door het systeem geleverde bindingen niet voldoet aan de vereisten van uw service. Een aangepaste binding kan bijvoorbeeld worden gebruikt om het gebruik van een nieuw transport of een nieuwe encoder op een service-eindpunt mogelijk te maken.

Een aangepaste binding wordt samengesteld met behulp van een van de CustomBinding uit een verzameling bindingselementen die in een specifieke volgorde zijn gestapeld:

De volgende tabel bevat een overzicht van de opties voor elke laag.

Laag Opties Required
Transactiestroom TransactionFlowBindingElement No
Reliability ReliableSessionBindingElement No
Beveiliging Symmetrisch, Asymmetrisch, Transport-Level No
Vorm wijzigen CompositeDuplexBindingElement No
Transportupgrades SSL-stream, Windows-stream, Peer Resolver No
Codering Tekst, Binair, MTOM, Aangepast Ja
Transport TCP, Named Pipes, HTTP, HTTPS, smaken van MSMQ, Aangepast Ja

Daarnaast kunt u uw eigen bindingselementen definiƫren en deze invoegen tussen een van de voorgaande gedefinieerde lagen.

Zie Een System-Provided Binding aanpassen voor een discussie over het gebruik van een aangepaste binding om een door het systeem geleverde binding te wijzigen.

Note

Wanneer u een WCF-service aanroept die is gebouwd met .NET Framework 4.0 of hoger vanuit een WCF-clienttoepassing die is gebouwd met .NET Framework 3.5 of eerder, bevat het configuratiebestand dat is gegenereerd door svcutil.exe of het toevoegen van een servicereferentie uit Visual Studio het geldigheidskenmerk in de bindingsconfiguratie. Dit kenmerk wordt niet herkend door de .NET Framework 3.5-runtime en de toepassing heeft een ConfigurationErrorsException gegenereerd met het bericht 'Ongeldige geldigheid van kenmerk'. Als tijdelijke oplossing voor dit probleem verwijdert u het geldigheidskenmerk uit de bindingsconfiguratie.

Constructors

Name Description
CustomBinding()

Initialiseert een nieuw exemplaar van de CustomBinding klasse.

CustomBinding(Binding)

Initialiseert een nieuw exemplaar van de CustomBinding klasse op basis van de waarden van een opgegeven binding.

CustomBinding(BindingElement[])

Initialiseert een nieuw exemplaar van de CustomBinding klasse op basis van een matrix met bindingselementen.

CustomBinding(IEnumerable<BindingElement>)

Initialiseert een nieuw exemplaar van de CustomBinding klasse met de bindingselementen uit een volledige kanaalstack.

CustomBinding(String, String, BindingElement[])

Initialiseert een nieuw exemplaar van de CustomBinding klasse van een matrix met bindingselementen met een opgegeven naam en naamruimte.

CustomBinding(String)

Initialiseert een nieuw exemplaar van de CustomBinding klasse.

Eigenschappen

Name Description
CloseTimeout

Hiermee haalt u het tijdsinterval op dat is opgegeven voor een verbinding die moet worden gesloten voordat het transport een uitzondering genereert.

(Overgenomen van Binding)
Elements

Haalt de bindingselementen van de aangepaste binding op.

MessageVersion

Hiermee haalt u de berichtversie op die wordt gebruikt door clients en services die zijn geconfigureerd met de binding.

(Overgenomen van Binding)
Name

Hiermee haalt u de naam van de binding op of stelt u deze in.

(Overgenomen van Binding)
Namespace

Hiermee haalt u de XML-naamruimte van de binding op of stelt u deze in.

(Overgenomen van Binding)
OpenTimeout

Hiermee haalt u het tijdsinterval op dat is opgegeven voor een verbinding die moet worden geopend voordat het transport een uitzondering genereert.

(Overgenomen van Binding)
ReceiveTimeout

Hiermee wordt het tijdsinterval opgehaald of ingesteld dat een verbinding inactief kan blijven, terwijl er geen toepassingsberichten worden ontvangen voordat deze wordt verwijderd.

(Overgenomen van Binding)
Scheme

Hiermee haalt u het URI-schema op voor transport dat wordt gebruikt door de aangepaste binding.

SendTimeout

Hiermee haalt u het tijdsinterval op dat is opgegeven voor een schrijfbewerking die moet worden voltooid voordat het transport een uitzondering genereert.

(Overgenomen van Binding)

Methoden

Name Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Bouwt de stack van de kanaalfactory op de client die een opgegeven type kanaal maakt en voldoet aan de functies die zijn opgegeven door een verzameling bindingsparameters.

(Overgenomen van Binding)
BuildChannelFactory<TChannel>(Object[])

Bouwt de stack van de kanaalfactory op de client die een opgegeven type kanaal maakt en voldoet aan de functies die zijn opgegeven door een objectmatrix.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de functies die zijn opgegeven door een verzameling bindingsparameters.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Object[])

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies.

(Overgenomen van Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Retourneert een waarde die aangeeft of de huidige binding een kanaalfactorystack kan bouwen op de client die voldoet aan de verzameling bindingsparameters die zijn opgegeven.

(Overgenomen van Binding)
CanBuildChannelFactory<TChannel>(Object[])

Retourneert een waarde die aangeeft of de huidige binding een kanaalfactorystack kan bouwen op de client die voldoet aan de vereisten die zijn opgegeven door een objectmatrix.

(Overgenomen van Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Retourneert een waarde die aangeeft of de huidige binding een kanaallistenerstack kan bouwen op de service die voldoet aan de verzameling bindingsparameters die zijn opgegeven.

(Overgenomen van Binding)
CanBuildChannelListener<TChannel>(Object[])

Retourneert een waarde die aangeeft of de huidige binding een kanaallistenerstack kan bouwen op de service die voldoet aan de criteria die zijn opgegeven in een matrix met objecten.

(Overgenomen van Binding)
CreateBindingElements()

Retourneert een algemene verzameling bindingselementen van de aangepaste binding.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetProperty<T>(BindingParameterCollection)

Retourneert een getypt object dat, indien aanwezig, is aangevraagd vanuit de juiste laag in de bindingsstack.

(Overgenomen van Binding)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ShouldSerializeName()

Retourneert of de naam van de binding moet worden geserialiseerd.

(Overgenomen van Binding)
ShouldSerializeNamespace()

Retourneert of de naamruimte van de binding moet worden geserialiseerd.

(Overgenomen van Binding)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op