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. |