我在运行时生成动态程序集。该动态程序集具有很少的类,这些类已经在另一个程序集的代码中定义。公共类的名称空间在两个程序集中都是相同的。
现在,当我使用XmlSerializer
时,它会抛出歧义异常。
Unable to generate a temporary class (result=1).
error CS0433: The type AppName.Common.Objects.Volatility' exists in both 'AppName.Data.Common.dll' and 'AppName\bin\Debug\Volatility.dll'
对此有任何想法。
提前致谢。
此致 Dheeraj Verma
答案 0 :(得分:0)
您的问题是,您在命名空间Volatility
中有一个名为AppName.Common.Objects
的类,它存在于两个dll的接口上。
一个似乎是在调试输出目录中复制并引用volatility.dll
,并且已经自动生成AppName.Data.Common.dll
。
我怀疑你会在Common类中找到Volatile类,它包含dll,但也包含在volatility.dll中。
修改强>
我认为这里唯一的路由是显式声明您传递给XMLSerializer的对象类型。您可能需要测试对象类型并运行switch语句以使用正确的对象类型调用XMLSerializer。