我正在使用设计不佳的 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 属性为类型。”
这将是一个好主意,除了我对包含“安装”和“卸载”类的程序集的控制为零。
有任何想法吗?