2012-02-28 41 views
0

我有一个解决方案“第一个”,它由很少的项目组成。其中一个项目引用了其他项目的dll。我通过浏览将它们添加到特定位置。 当我通过一个简单的Windows应用程序启动另一个解决方案“Second”时,我添加了对“First”和两个“First”项目的引用,这两个项目相互延伸。我通过“First”的代码添加参考。XmlSerializer加载错误的程序集

现在,在“第一”,我有这行代码:

OneProject hello = OneProjectList[OneProjectList.Count - 1]; 
StringWriter sw = new StringWriter(); 
XmlSerializer serializer=new XmlSerializer(hello.GetType(),new Type[]{typeof(OneProject)}); 
serializer.Serialize(sw, hello); 

在最后一行项目崩溃。例外情况是{“[A] Something.X不能转换为[B] Something.X。 类型A来源于上下文'LoadFrom'中的'Something,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'位于'goodLocation'位置的 类型B来源于位置 '上的上下文'LoadNeither'中的'EL_CL,版本= 1.0.0.0,Culture = neutral,PublicKeyToken = null'C:\ Users \ John \ AppData \ Local \ Microsoft \ VisualStudio \ 8.0 \ ProjectAssemblies \ p3www12k01 \ EL_CL.dll'。“}

在VS的输出窗口中,我有:'devenv.exe'(托管):Loaded'C:\ Users \ John \ AppData \ Local \ Microsoft \ VisualStudio \ 8.0 \ ProjectAssemblies \ p3www12k01 \ Something.dll',不加载符号。

这个程序集为什么会被加载?在serializer.Serialize(sw,hello);,显示Output窗口中的那一行,然后程序崩溃。

请注意Something = hello.GetType()。

回答

0

如果从XmlSerializer构造函数中取出额外的Type数组,它会起作用吗?

XmlSerializer serializer = new XmlSerializer(hello.GetType); 
+0

不会发生同样的异常。 – 2012-02-28 19:28:53

相关问题