当我尝试序列化类型时,我一直在使用的应用程序失败。
像这样的声明
XmlSerializer lizer = new XmlSerializer(typeof(MyType));
产生:
System.IO.FileNotFoundException occurred Message="Could not load file or assembly '[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified." Source="mscorlib" FileName="[Containing Assembly of MyType].XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" FusionLog="" StackTrace: at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
我没有为班级定义任何特殊的序列化器。
我该如何解决这个问题?
信不信由你,这是正常的行为。引发了一个异常,但由XmlSerializer处理,因此,如果您忽略它,一切都应该继续进行。
我发现这很烦人,如果您进行一些搜索,就会有很多关于此的投诉,但是据我了解,Microsoft并不打算对此做任何事情。
如果您为特定异常关闭了初次机会异常,则可以避免在调试时始终获得异常弹出窗口。在Visual Studio中,转到“ 调试” ->“ 异常” (或按Ctrl+ Alt+ E),“ 公共语言运行时异常” ->“ System.IO” ->“ System.IO.FileNotFoundException” 。
Ctrl
Alt
E
您可以在博客文章 C#XmlSerializer FileNotFound异常 (讨论Chris Sells的工具 XmlSerializerPreCompiler )中找到有关它的另一种方法的信息。