CustomBinding Class

Definition

Definiert eine Bindung aus einer Liste mit Bindungselementen. Defines a binding from a list of binding elements.

[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
Vererbung
CustomBinding
Attribute

Beispiele

Das folgende Beispiel zeigt, wie man ein CustomBinding-Objekt unter Verwendung von ReliableSessionBindingElement und HttpTransportBindingElement erstellt.The following example shows how to create a CustomBinding object using a ReliableSessionBindingElement and an 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

Hinweise

Verwenden Sie eine benutzerdefinierte Bindung, wenn eine der vom System bereitgestellten Bindungen die Anforderungen für Ihren Dienst nicht erfüllt.Use a custom binding when one of the system-provided bindings does not meet the requirements of your service. Eine benutzerdefinierte Bindung kann beispielsweise verwendet werden, um die Nutzung eines neuen Transports oder eines neuen Encoders an einem Dienstendpunkt zu aktivieren.A custom binding could be used, for example, to enable the use of a new transport or a new encoder at a service endpoint.

Eine benutzerdefinierte Bindung wird durch Verwendung einer der CustomBinding aus einer Sammlung an Bindungselementen erstellt, die in einer spezifischen Reihenfolge "gestapelt" sind:A custom binding is constructed using one of the CustomBinding from a collection of binding elements that are "stacked" in a specific order:

In der folgenden Tabelle werden die Optionen für jede Ebene zusammengefasst.The following table summarizes the options for each layer.

EbeneLayer OptionenOptions ErforderlichRequired
TransaktionsflussTransaction Flow TransactionFlowBindingElement NeinNo
ZuverlässigkeitReliability ReliableSessionBindingElement NeinNo
SicherheitSecurity Symmetrisch, asymmetrisch, auf TransportebeneSymmetric, Asymmetric, Transport-Level NeinNo
FormänderungShape Change CompositeDuplexBindingElement NeinNo
Transport-UpgradesTransport Upgrades SSL-Stream, Windows-Stream, PeerresolverSSL stream, Windows stream, Peer Resolver NeinNo
CodierungEncoding Text, Binärdatei, MTOM, benutzerdefiniertText, Binary, MTOM, Custom JaYes
TransportTransport TCP, Named Pipes, HTTP, HTTPS, Typen der MSMQ, benutzerdefiniertTCP, Named Pipes, HTTP, HTTPS, flavors of MSMQ, Custom JaYes

Zusätzlich können Sie Ihre eigenen Bindungselemente definieren und diese zwischen den vorangehenden definierten Ebenen einsetzen.In addition, you can define your own binding elements and insert them between any of the preceding defined layers.

Eine Erläuterung zur Verwendung eine benutzerdefinierten Bindung für eine vom System bereitgestellte Bindung zu ändern, finden Sie unter wie: Anpassen einer System-provided Bindung.For a discussion on how to use a custom binding to modify a system-provided binding, see How to: Customize a System-Provided Binding.

Hinweis

Beim Aufrufen eines WCF-Diensts mit .net Framework 4.0 oder höher von einem WCF-Client basierende Anwendung erstellt mit erstellten .NET Framework 3,5.NET Framework 3.5 oder früher, enthält die Konfigurationsdatei von svcutil.exe generiert wurde, oder ein hinzugefügter Dienstverweis aus Visual Studio die Gültigkeit Das Attribut in der Bindungskonfiguration.When calling a WCF service built with .Net Framework 4.0 or later from a WCF client application built with .NET Framework 3,5.NET Framework 3.5 or earlier, the configuration file generated by svcutil.exe or adding a service reference from Visual Studio will contain the validity attribute in the binding configuration. Dieses Attribut wird nicht von der .NET Framework 3,5.NET Framework 3.5-Laufzeit erkannt, und die Anwendung löst eine ConfigurationErrorsException mit der Meldung, dass ein nicht erkanntes Gültigkeitsattribut vorliegt.This attribute is not recognized by the .NET Framework 3,5.NET Framework 3.5 runtime and the application will thrown an ConfigurationErrorsException with the message "Unrecognized attribute validity". Zur Umgehung dieses Problems, entfernen Sie das Gültigkeitsattribut aus der Bindungskonfiguration.To workaround this problem, remove the validity attribute from the binding configuration.

Konstruktoren

CustomBinding()

Initialisiert eine neue Instanz der CustomBinding-Klasse. Initializes a new instance of the CustomBinding class.

CustomBinding(Binding)

Initialisiert eine neue Instanz der CustomBinding-Klasse aus den Werten einer angegebenen Bindung. Initializes a new instance of the CustomBinding class from the values of a specified binding.

CustomBinding(BindingElement[])

Initialisiert eine neue Instanz der CustomBinding-Klasse aus einem Array von Bindungselementen. Initializes a new instance of the CustomBinding class from an array of binding elements.

CustomBinding(IEnumerable<BindingElement>)

Initialisiert eine neue Instanz der CustomBinding-Klasse mit den Bindungselementen aus einem vollständigen Kanalstapel. Initializes a new instance of the CustomBinding class with the binding elements from a complete channel stack.

CustomBinding(String)

Initialisiert eine neue Instanz der CustomBinding-Klasse. Initializes a new instance of the CustomBinding class.

CustomBinding(String, String, BindingElement[])

Initialisiert eine neue Instanz der CustomBinding-Klasse aus einem Array an Bindungselementen mit einem spezifischen Namen und Namespace. Initializes a new instance of the CustomBinding class from an array of binding elements with a specified name and namespace.

Eigenschaften

CloseTimeout

Ruft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

(Inherited from Binding)
Elements

Ruft die Bindungselemente aus der benutzerdefinierten Bindung ab. Gets the binding elements from the custom binding.

MessageVersion

Ruft die Nachrichtenversion ab, die von den Clients und Diensten verwendet wird, die mit der Bindung konfiguriert wurden. Gets the message version used by clients and services configured with the binding.

(Inherited from Binding)
Name

Ruft den Namen der Bindung ab oder legt diesen fest. Gets or sets the name of the binding.

(Inherited from Binding)
Namespace

Ruft den XML-Namespace einer Bindung ab oder legt diesen fest. Gets or sets the XML namespace of the binding.

(Inherited from Binding)
OpenTimeout

Ruft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geöffnet wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

(Inherited from Binding)
ReceiveTimeout

Ruft ein Zeitintervall ab oder legt ein Zeitintervall fest, während dessen eine Verbindung inaktiv bleiben kann und keine Anwendungsnachrichten empfangen werden, bevor sie verworfen werden. Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

(Inherited from Binding)
Scheme

Ruft das URI-Schema für den Transport ab, das von der benutzerdefinierten Bindung verwendet wird. Gets the URI scheme for transport used by the custom binding.

SendTimeout

Ruft das Zeitintervall ab, das für einen Schreibvorgang eingerichtet ist, der abgeschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest. Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

(Inherited from Binding)

Methoden

BuildChannelFactory<TChannel>(BindingParameterCollection)

Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden. Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(Inherited from Binding)
BuildChannelFactory<TChannel>(Object[])

Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einem Objektarray festgelegt werden. Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

(Inherited from Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(Inherited from Binding)
BuildChannelListener<TChannel>(Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt. Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(Inherited from Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt. Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

(Inherited from Binding)
CanBuildChannelFactory<TChannel>(Object[])

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die von einem Objektarray festgelegten Anforderungen erfüllt. Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

(Inherited from Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt. Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

(Inherited from Binding)
CanBuildChannelListener<TChannel>(Object[])

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die in einem Objektarray festgelegten Kriterien erfüllt. Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

(Inherited from Binding)
CreateBindingElements()

Gibt eine generische Auflistung der Bindungselemente von der benutzerdefinierten Bindung zurück. Returns a generic collection of the binding elements from the custom binding.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Fungiert als die Standardhashfunktion. Serves as the default hash function.

(Inherited from Object)
GetProperty<T>(BindingParameterCollection)

Gibt ggf. ein angefordertes typisiertes Objekt von der entsprechenden Ebene im Bindungsstapel zurück. Returns a typed object requested, if present, from the appropriate layer in the binding stack.

(Inherited from Binding)
GetType()

Ruft den Type der aktuellen Instanz ab. Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object. Creates a shallow copy of the current Object.

(Inherited from Object)
ShouldSerializeName()

Gibt einen Wert zurück, der angibt, ob der Name der Bindung serialisiert werden soll. Returns whether the name of the binding should be serialized.

(Inherited from Binding)
ShouldSerializeNamespace()

Gibt einen Wert zurück, der angibt, ob der Namespace der Bindung serialisiert werden soll. Returns whether the namespace of the binding should be serialized.

(Inherited from Binding)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. Returns a string that represents the current object.

(Inherited from Object)

Gilt für: