J'ai lu que la sérialisation des assemblages (sgen.exe) peut améliorer les performances. Qu'est-ce qui apporte exactement cette amélioration ? S'agit-il de métadonnées sur les types ? J'aurais pensé que cela serait disponible par la réflexion ! alors pourquoi est-ce nécessaire dans une assemblée séparée ?
Réponse
Trop de publicités?Les assemblages de sérialisation Data.XmlSerializers.dll qui améliorent les performances des clients qui utilisent des proxies de services Web XML pour communiquer avec les serveurs sont décrits sous la rubrique http://msdn.microsoft.com/en-us/library/bk3w6240.aspx .
Si vous ne le faites pas, le même travail sera effectué lors de la première utilisation de XmlSerializer
. Dans le blog http://blogs.msdn.com/b/billwert/archive/2008/02/23/use-of-sgen-exe-to-avoid-common-xmlserializer-performance-pitfalls.aspx est décrit comme un paramètre supplémentaire dans <system.diagnostics>
du fichier application.config pour en savoir plus sur ce qu'il faut faire. XmlSerializer
en arrière-plan.
Dans Visual Studio, il existe un certain nombre de paramètres dans l'onglet "Build" des paramètres du projet (voir http://www.eggheadcafe.com/tutorials/aspnet/8eb0e68f-5496-4363-9cb9-dd68447ba187/xml-serializer-generator.aspx ). Il n'est donc pas vraiment nécessaire d'utiliser sgen.exe manuellement.
Pour mieux comprendre ce que fait sgen.exe, vous pouvez charger une version open source de sgen.exe : xgenplus http://xgenplus.codeplex.com/ .
Je vous recommande également de lire http://stackoverflow.com/questions/2543641/sgen-xmlserializer-should-be-xmlserializers-dll-added-as-a-reference-to-the-cu .
Si vous faites une recherche dans google pour XmlSerializer et sgen, vous trouverez toutes les informations et même plus sur la première page des résultats de la recherche.