Générer automatiquement un assemblage de sérialisation XML
Question :
Lors de l'utilisation de XmlSerializer, une exception s'est produite en raison d'un assembly de sérialisation manquant. Pourquoi le paramètre Visual Studio « Générer un assembly sérialisé » ne résout-il pas ce problème et comment puis-je le résoudre ?
Réponse :
Le paramètre « Générer un assembly de sérialisation » seul n'est pas suffisant, car la tâche SGen ajoute le commutateur « /proxytypes » à la ligne de commande sgen.exe, empêchant la génération d'assemblys de sérialisation sans types de proxy.
Pour résoudre ce problème, Microsoft a introduit la propriété MSBuild « SGenUseProxyTypes » qui vous permet de désactiver le commutateur « /proxytypes ». Voici comment l'utiliser :
Étape 1 : Désactiver la génération de type de proxy
Avant d'importer Microsoft.Common.Targets ou C#/VB.targets, ajoutez les propriétés suivantes à votre fichier de projet :
<code class="language-xml"><sgenuseproxytypes>false</sgenuseproxytypes></code>
Étape 2 : Activer la génération d'assemblys de sérialisation
Assurez-vous que le paramètre « Générer un assemblage sérialisé » est activé dans les propriétés du projet.
Configuration du fichier projet modifié :
<code class="language-xml"><PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <GenerateSerializationAssemblies>On</GenerateSerializationAssemblies> <SGenUseProxyTypes>false</SGenUseProxyTypes> </PropertyGroup></code>
Après avoir effectué ces modifications, Visual Studio générera automatiquement l'assembly de sérialisation XML sans intervention manuelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!