Outil XML Serializer Generator (Sgen.exe)

Xml Serializer Generator crée un assembly de sérialisation XML pour les types dans un assembly spécifié. L’assembly de sérialisation améliore les performances de démarrage d’un XmlSerializer lorsqu’il sérialise ou désérialise les objets des types spécifiés.

Remarque

Cet outil est spécifique aux assemblys .NET Framework. Pour générer des sérialiseurs XML pour les assemblys .NET (Core), consultez Utiliser Microsoft XML Serializer Generator sur .NET Core.

Syntaxe

Exécutez l’outil à partir de la ligne de commande.

sgen [options]

Conseil

Pour que les outils .NET Framework fonctionnent correctement, vous devez utiliser l’invite de commandes développeur Visual Studio ou Visual Studio Developer PowerShell ou définir correctement les variables d’environnement Path, Include et Lib. Pour définir ces variables d’environnement, exécutez SDKVars.bat, qui se trouve dans le répertoire <SDK>\<version>\Bin.

Paramètres

Option Description
/a[ssembly]:nom_fichier Génère le code de sérialisation pour tous les types contenus dans l’assembly ou le fichier exécutable spécifié par nom_fichier. Un seul nom de fichier peut être fourni. Si cet argument est répété, le dernier nom de fichier est utilisé.
/c[ompiler]:options Spécifie les options à passer au compilateur C#. Toutes les options csc.exe sont prises en charge à mesure qu'elles sont passées au compilateur. Cette option peut être utilisée pour spécifier que l'assembly doit être signé et pour indiquer le fichier de clé.
/d[ebug] Génère une image qui peut être utilisée avec un débogueur.
/f[orce] Force l'écrasement par réécriture d'un assembly existant du même nom. La valeur par défaut est false.
/help ou /? Affiche la syntaxe et les options de commande de l'outil.
/k[eep] Efface la suppression des fichiers source générés et d'autres fichiers temporaires une fois qu'ils ont été compilés dans l'assembly de sérialisation. Cette option peut être utilisée afin de déterminer si l'outil génère le code de sérialisation pour un type particulier.
/n[ologo] Supprime l'affichage de la bannière de démarrage Microsoft.
/o[ut]:chemin Spécifie le répertoire dans lequel enregistrer l'assembly généré. Remarque : Le nom de l’assembly généré est composé du nom de l’assembly d’entrée suivi de « xmlSerializers.dll ».
/p[roxytypes] Génère un code de sérialisation uniquement pour les types de proxy de service Web XML.
/r[eference]:fichiers_assembly Spécifie les assemblys référencés par les types qui requièrent la sérialisation XML. Accepte plusieurs fichiers d'assembly séparés par des virgules.
/s[ilent] Supprime l'affichage des messages indiquant la réussite des opérations.
/t[ype]:type Génère un code de sérialisation uniquement pour le type spécifié.
/v[erbose] Affiche la sortie en clair pour le débogage. Répertorie les types à partir de l'assembly cible qui ne peuvent pas être sérialisés avec le XmlSerializer.
/? Affiche la syntaxe et les options de commande de l'outil.

Notes

Lorsque l’outil XML Serializer Generator n’est pas utilisé, XmlSerializer génère un code de sérialisation et un assembly de sérialisation pour chacun des types à chaque exécution d’une application. Pour améliorer les performances du démarrage de la sérialisation XML, utilisez l’outil Sgen.exe afin de générer ces assemblys à l’avance. Ces assemblys peuvent ensuite être déployés avec l'application.

L’outil XML Serializer Generator peut également améliorer les performances des clients utilisant des proxys de service Web XML pour communiquer avec les serveurs, car le processus de sérialisation n’entraîne pas de dégradation des performances lors du premier chargement du type.

Les assemblys générés ne peuvent pas être utilisés du côté serveur d’un service Web. Cet outil est conçu uniquement pour les clients de service Web et les scénarios de sérialisation manuelle.

Remarque

L’outil sgen n’est pas compatible avec les setters à l’initialisation uniquement. L’outil échoue si l’assembly cible contient des propriétés publiques qui utilisent cette fonctionnalité.

Identification

Si l’assembly contenant le type à sérialiser se nomme MyType.dll, l’assembly de sérialisation associé est alors nommé MyType.XmlSerializers.dll.

Exemples

La commande suivante crée un assembly nommé Data.XmlSerializers.dll pour sérialiser tous les types contenus dans l’assembly Data.dll.

sgen Data.dll

L’assembly Data.XmlSerializers.dll peut être référencé à partir du code devant sérialiser et désérialiser les types dans Data.dll.

Voir aussi