設計が不十分な API を使用しています。シリアル化する必要があるクラスがあり、クラスの構成を制御できますが、クラスがシリアル化するプロパティを構成する型は制御できません。以下に例を示します。
<Project>
<SomeProperty1 />
<Install>
<DefaultStep></DefaultStep>
</Install>
<Uninstall>
<DefaultStep></DefaultStep>
</Uninstall>
</Project>
問題は、「インストール」タイプと「アンインストール」タイプを制御できず、それらのネストされたタイプが同じ名前になっていることです。「インストール」は MyCompany.Install.dll にあり、「アンインストール」は MyCompany.Uninstall.dll にあります。しかし、問題は、MyCompany.Uninstall.dll が MyCompany.Install.dll を参照していることです。これはまったく無意味です。私はこれが悪い設計であることを知っています (私が扱っているフレームワーク全体がひどいものです) が、それを扱う選択肢はありません。
私が得るエラーは次のとおりです。
「タイプ 'MyCompany.Install.Uninstall.DefaultStep' および 'MyCompany.Install.DefaultStep' は両方とも、名前空間からの XML タイプ名 'DefaultStep' を使用します。XML 属性を使用して、一意の XML 名および/または名前空間を指定します。タイプ。"
「Install」および「Uninstall」クラスを含むアセンブリをまったく制御できないことを除けば、それは良い考えです。
何か案は?