我有一个解决方案" First"它由几个项目组成。其中一个项目引用了其他项目的dll。我通过浏览到特定位置添加它们。 当我开始另一个解决方案" Second"使用一个简单的Windows应用程序,我添加了对#34; First"和第一个"的第一个"项目中的两个,它们相互延伸。我通过" 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] Something.X。 类型A源自' Something,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文中'LoadFrom'在位置' goodLocation'。 类型B源自' EL_CL,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'在上下文中'LoadNeither'在位置 ' C:\用户\约翰\应用程序数据\本地\微软\ VisualStudio的\ 8.0 \ ProjectAssemblies \ p3www12k01 \ EL_CL.dll'"}
在VS的“输出”窗口中,我有:' devenv.exe' (已管理):已加载' C:\ Users \ John \ AppData \ Local \ Microsoft \ VisualStudio \ 8.0 \ ProjectAssemblies \ p3www12k01 \ Something.dll',未加载符号。
为什么这个程序集被加载?在serializer.Serialize(sw,hello);中显示Output窗口中的那一行,然后程序崩溃。
请注意Something = hello.GetType()。
答案 0 :(得分:0)
如果从XmlSerializer构造函数中取出额外的Type数组,它是否有效?
XmlSerializer serializer = new XmlSerializer(hello.GetType);