Je travaille avec une API mal conçue. J'ai une classe dont j'ai besoin pour sérialiser, et j'ai le contrôle sur la composition de la classe, mais pas sur les types qui composent les propriétés que la classe sérielle. Un exemple est ci-dessous:Classes imbriquées avec le même nom dans des assemblages distincts provoquant des céphalées de sérialisation
<Project>
<SomeProperty1 />
<Install>
<DefaultStep></DefaultStep>
</Install>
<Uninstall>
<DefaultStep></DefaultStep>
</Uninstall>
</Project>
Le problème est, je ne contrôle pas les « Installer » et types « Désinstaller », et leurs types imbriqués ont le même nom. "Install" réside dans MyCompany.Install.dll et "Uninstall" réside dans MyCompany.Uninstall.dll. Mais le kicker est, MyCompany.Uninstall.dll refererences MyCompany.Install.dll, ce qui est complètement inutile. Je sais que c'est une mauvaise conception (tout le cadre que j'ai à traiter est terrible) mais je n'ai pas le choix de travailler avec.
L'erreur que je reçois est:
« Types 'MyCompany.Install.Uninstall.DefaultStep' et 'MyCompany.Install.DefaultStep' utilisent tous deux le nom du type XML, 'DefaultStep', à partir de l'espace de noms ''. Utilisez les attributs XML pour spécifier un nom XML unique et/ou un espace de noms pour le type. "
Ce serait une bonne idée, sauf que je n'ai aucun contrôle sur les assemblys qui contiennent les classes "Install" et "Uninstall".
Des idées?
Slick, je n'ai jamais vu ça auparavant. –
@Greg: J'ai été étonné quand je l'ai trouvé aussi. La clairvoyance sans fin de ingénieurs Microsoft ne cesse de m'étonner. Le expliqué pour chaque scénario. ;) – jrista
Merci pour votre aide les gars. J'ai posté la solution que j'ai trouvée ci-dessous. – AdvancedREI