XmlSerializer加载了错误的程序集
本文关键字:程序集 错误 加载 XmlSerializer | 更新日期: 2023-09-27 18:26:06
我有一个由几个项目组成的解决方案"First"。其中一个项目引用了其他项目的dll。我通过浏览将它们添加到特定位置。当我用一个简单的windows应用程序启动另一个解决方案"Second"时,我添加了对"First"answers"First"的两个项目的引用,这两个项目从另一个项目扩展而来。我通过"First"中的代码添加引用。
现在,在"第一"中,我有一行代码:
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]Somethic.X。类型A源自位置"goodLocation"处上下文"LoadFrom"中的"Something,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"。类型B源自位置处上下文"LoadNoor"中的"EL_CL,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"C:''Users''John''AppData''Local''Microsoft''VisualStudio''8.0''ProjectAssemblys''p3www12k01''EL_CL.dll"。"}
在VS的"输出"窗口中,我有:"devenv.exe"(托管):Loaded"C:''Users''John''AppData''Local''Microsoft''VisualStudio''8.0''ProjectAssemblies''p3www12k01''Something.dll",未加载符号。
为什么加载此程序集?"输出"窗口中的这一行在序列化时显示。序列化(sw,hello);,然后程序就崩溃了。
注意Something=你好。GetType()。
如果从XmlSerializer构造函数中取出额外的Type数组,它能工作吗?
XmlSerializer serializer = new XmlSerializer(hello.GetType);