CustomBinding Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit une liaison dans une liste d'éléments de liaison.
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
- Héritage
- Attributs
Exemples
L'exemple suivant illustre la manière de créer un objet CustomBinding à l'aide d'un ReliableSessionBindingElement et d'un 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
Remarques
Utilisez une liaison personnalisée lorsque l’une des liaisons fournies par le système ne répond pas aux exigences de votre service. Une liaison personnalisée peut être utilisée, par exemple, pour activer l’utilisation d’un nouveau transport ou d’un nouvel encodeur à un point de terminaison de service.
Une liaison personnalisée est construite à l'aide d'une collection CustomBinding d'éléments de liaison « empilés » dans un ordre spécifique :
Tout en haut de cette pile figure un TransactionFlowBindingElement facultatif qui autorise des transactions de flux.
Puis figure un ReliableSessionBindingElement facultatif qui fournit une session et un mécanisme de classement tel que défini dans la spécification WS-ReliableMessaging. Cette notion de session peut traverser les intermédiaires SOAP et de transport.
Puis figure un élément de liaison facultatif qui fournit des fonctionnalités de sécurité telles que l'autorisation, l'authentification, la protection et la confidentialité. Les éléments de liaison de sécurité suivants sont fournis par Windows Communication Foundation (WCF) :
Les modèles de messages facultatifs spécifiés par des éléments de liaison figurent ci-dessous :
Les éléments de liaison d’assistance/de mises à niveau de transport facultatifs sont les suivants :
L’élément suivant est un message obligatoire qui encode l’élément de liaison. Vous pouvez utiliser votre propre transport ou utiliser l’une des liaisons d’encodage des messages suivantes :
Au bas de la pile se trouve un élément de transport obligatoire. Vous pouvez utiliser votre propre transport ou utiliser l’un des éléments de liaison de transport fournis par Windows Communication Foundation (WCF) :
Le tableau suivant récapitule les options de chaque couche.
Couche | Options | Obligatoire |
---|---|---|
Flux de transaction | TransactionFlowBindingElement | Non |
Fiabilité | ReliableSessionBindingElement | Non |
Sécurité | Symétrique, asymétrique, au niveau du transport | Non |
Modification de la forme | CompositeDuplexBindingElement | Non |
Mises à niveau de transport | Flux SSL, flux Windows, programme de résolution d'homologue | Non |
Encodage | Text, Binary, MTOM, Custom | Oui |
Transport | TCP, canaux nommés, HTTP, HTTPS, versions de MSMQ, personnalisé | Oui |
De plus, vous pouvez définir vos propres éléments de liaison et les insérer entre chacune des couches définies précédentes.
Pour une discussion sur l’utilisation d’une liaison personnalisée pour modifier une liaison fournie par le système, consultez Guide pratique pour personnaliser une liaison fournie par le système.
Notes
Lors de l’appel d’un service WCF créé avec .NET Framework 4.0 ou version ultérieure à partir d’une application cliente WCF créée avec .NET Framework 3.5 ou version antérieure, le fichier de configuration généré par svcutil.exe ou l’ajout d’une référence de service à partir de Visual Studio contient l’attribut de validité dans la configuration de liaison. Cet attribut n’est pas reconnu par le runtime .NET Framework 3.5 et l’application lève un ConfigurationErrorsException avec le message « Validité de l’attribut non reconnu ». Pour résoudre ce problème, supprimez l’attribut de validité de la configuration de liaison.
Constructeurs
CustomBinding() |
Initialise une nouvelle instance de la classe CustomBinding. |
CustomBinding(Binding) |
Initialise une nouvelle instance de la classe CustomBinding à partir des valeurs d'une liaison spécifiée. |
CustomBinding(BindingElement[]) |
Initialise une nouvelle instance de la classe CustomBinding à partir d'un tableau d'éléments de liaison. |
CustomBinding(IEnumerable<BindingElement>) |
Initialise une nouvelle instance de la classe CustomBinding avec les éléments de liaison d'une pile de canaux complète. |
CustomBinding(String) |
Initialise une nouvelle instance de la classe CustomBinding. |
CustomBinding(String, String, BindingElement[]) |
Initialise une nouvelle instance de la classe CustomBinding à partir d'un tableau d'éléments de liaison avec un nom et un espace de noms spécifiés. |
Propriétés
CloseTimeout |
Obtient ou définit l'intervalle de temps attribué à une connexion pour qu'elle se ferme avant que le transport lève une exception. (Hérité de Binding) |
Elements |
Obtient les éléments de liaison de la liaison personnalisée. |
MessageVersion |
Obtient la version de message utilisée par les clients et les services configurés avec la liaison. (Hérité de Binding) |
Name |
Obtient ou définit le nom de la liaison. (Hérité de Binding) |
Namespace |
Obtient ou définit l’espace de noms XML de la liaison. (Hérité de Binding) |
OpenTimeout |
Obtient ou définit l'intervalle de temps attribué à une connexion pour qu'elle s'ouvre avant que le transport lève une exception. (Hérité de Binding) |
ReceiveTimeout |
Obtient ou définit la durée d’inactivité d’une connexion. Si aucun message d’application n’est reçu pendant ce laps de temps, la connexion est abandonnée. (Hérité de Binding) |
Scheme |
Reçoit le schéma d’URI pour le transport utilisé par la liaison personnalisée. |
SendTimeout |
Obtient ou définit l'intervalle de temps attribué à une opération d'écriture pour qu'elle se termine avant que le transport lève une exception. (Hérité de Binding) |
Méthodes
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Génère la pile de fabriques de canaux sur le client qui crée un type de canal donné et est conforme aux fonctionnalités spécifiées par une collection de paramètres de liaison. (Hérité de Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Génère la pile de fabriques de canaux sur le client qui crée un type de canal donné et est conforme aux fonctionnalités spécifiées par un tableau d’objets. (Hérité de Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées par une collection de paramètres de liaison. (Hérité de Binding) |
BuildChannelListener<TChannel>(Object[]) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Génère l'écouteur de canal sur le service qui accepte un type de canal donné et est conforme aux fonctionnalités spécifiées. (Hérité de Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Retourne une valeur qui indique si la liaison actuelle peut générer sur le client une pile de fabriques de canaux conforme à la collection de paramètres de liaison spécifiée. (Hérité de Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Retourne une valeur qui indique si la liaison actuelle peut générer sur le client une pile de fabriques de canaux conforme aux exigences définies par un tableau d’objets. (Hérité de Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Retourne une valeur qui indique si la liaison actuelle peut générer sur le service une pile d’écouteurs de canal conforme à la collection de paramètres de liaison spécifiée. (Hérité de Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Retourne une valeur qui indique si la liaison actuelle peut générer sur le service une pile d’écouteurs de canal conforme aux critères spécifiés dans un tableau d’objets. (Hérité de Binding) |
CreateBindingElements() |
Retourne une collection générique des éléments de liaison de la liaison personnalisée. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetProperty<T>(BindingParameterCollection) |
Retourne un objet typé demandé (s’il existe) à partir de la couche appropriée dans la pile de liaison. (Hérité de Binding) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ShouldSerializeName() |
Retourne une valeur indiquant si le nom de la liaison doit être sérialisé. (Hérité de Binding) |
ShouldSerializeNamespace() |
Retourne une valeur indiquant si l’espace de noms de la liaison doit être sérialisé. (Hérité de Binding) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |