Génération d'un client WCF à partir de métadonnées de service

Cette rubrique décrit comment utiliser plusieurs commutateurs dans Svcutil.exe pour générer des clients à partir de documents de métadonnées.

Les documents de métadonnées peuvent se trouver sur un stockage durable ou être récupérés en ligne. La récupération en ligne suit le protocole WS-MetadataExchange ou le protocole Microsoft Discovery (DISCO). Svcutil.exe publie les demandes de métadonnées suivantes simultanément pour récupérer des métadonnées :

  • Demande WS-MetadataExchange (MEX) à l'adresse fournie.

  • Demande MEX à l'adresse fournie avec /mex ajouté.

  • Requête DISCO (à l’aide de DiscoveryClientProtocol des services Web ASP.NET) à l’adresse fournie (page pouvant être en anglais).

Svcutil.exe génère le client basé sur WSDL (Web Services Description Language) ou le fichier de stratégie reçu du service. Le nom d'utilisateur principal (UPN) est généré en concaténant le nom d'utilisateur avec "@" et en ajoutant ensuite un nom de domaine qualifié complet (FQDN). Toutefois, ce format n’est pas valide pour les utilisateurs qui sont enregistrés sur Active Directory, et l’UPN que l’outil génère provoque un échec dans l’authentification Kerberos avec le message d’erreur suivant : The logon attempt failed. Pour résoudre ce problème, résolvez manuellement le fichier client que l’outil a généré.

svcutil.exe [/t:code]  <metadataDocumentPath>* | <url>* | <epr>  

Référencement et partage des types

Option Description
/reference:<file path> Référence les types contenus dans l'assembly spécifié. Lorsque vous générez des clients, utilisez cette option pour spécifier des assemblys qui peuvent contenir des types représentant les métadonnées importées.

Forme abrégée : /r
/excludeType:<type> Spécifie un nom de type qualifié complet ou qualifié d'assembly à exclure des types de contrat référencés.

Forme abrégée : /et

Choix d'un sérialiseur

Option Description
/serializer:Auto Sélectionne automatiquement le sérialiseur. Cette opération utilise le sérialiseur DataContract. Si cela échoue, le XmlSerializer est utilisé.

Forme abrégée : /ser:Auto
/serializer:DataContractSerializer Génère des types de données qui utilisent le sérialiseur DataContract pour la sérialisation et la désérialisation.

Forme abrégée : /ser:DataContractSerializer
/serializer:XmlSerializer Génère des types de données qui utilisent le XmlSerializer pour la sérialisation et la désérialisation.

Forme abrégée : /ser:XmlSerializer
/importXmlTypes Configure le sérialiseur DataContract pour importer les types non DataContract comme types IXmlSerializable.

Forme abrégée : /ixt
/dataContractOnly Génère du code pour les types DataContract uniquement. Les types ServiceContract sont générés.

Pour cette option, vous devez spécifier uniquement des fichiers de métadonnées locaux.

Forme abrégée : /dconly

Choix d'un langage pour le client

Option Description
/language:<language> Spécifie le langage de programmation à utiliser pour la génération de code. Spécifiez un nom de langage enregistré dans le fichier Machine.config, ou le nom qualifié complet d'une classe qui hérite de CodeDomProvider.

Valeurs : c#, cs, csharp, vb, vbs, visualbasic, vbscript, javascript, c++, mc, cpp

Valeur par défaut : csharp

Forme abrégée : /l

Pour plus d'informations, consultez la classe CodeDomProvider.

Choix d'un espace de noms pour le client

Option Description
/namespace:<string,string> Spécifie un mappage d'un schéma WSDL ou XML targetNamespace à un espace de noms du Common Language Runtime (CLR). L'utilisation d'un caractère générique (*) pour le targetNamespace mappe tous les targetNamespaces sans mappage explicite à cet espace de noms CLR.

Pour vérifier que le nom de contrat du message n'entre pas en collision avec le nom d'opération, qualifiez la référence de type avec des signes deux-points doubles ::, ou vérifiez que les noms sont uniques.

Valeur par défaut : dérivée de l'espace de noms cible du document de schéma pour DataContracts. L'espace de noms par défaut est utilisé pour tous les autres types générés.

Forme abrégée : /n

Choix d’une liaison de données

Option Description
/enableDataBinding Implémente l’interface INotifyPropertyChanged sur tous les types DataContract pour activer la liaison de données.

Forme abrégée : /edb

Génération de la configuration

Option Description
/config:<configFile> Spécifie le nom de fichier du fichier de configuration généré.

Valeur par défaut : output.config.
/mergeConfig Fusionne la configuration générée dans un fichier existant au lieu de remplacer le fichier existant.
/noConfig Ne génère pas de fichiers de configuration.

Voir aussi