小编典典

XmlSerializer在构造函数中提供FileNotFoundException

c#

当我尝试序列化类型时,我一直在使用的应用程序失败。

像这样的声明

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)

我没有为班级定义任何特殊的序列化器。

我该如何解决这个问题?


阅读 248

收藏
2020-05-19

共1个答案

小编典典

信不信由你,这是正常的行为。引发了一个异常,但由XmlSerializer处理,因此,如果您忽略它,一切都应该继续进行。

我发现这很烦人,如果您进行一些搜索,就会有很多关于此的投诉,但是据我了解,Microsoft并不打算对此做任何事情。

如果您为特定异常关闭了初次机会异常,则可以避免在调试时始终获得异常弹出窗口。在Visual Studio中,转到“ 调试” ->“ 异常”
(或按Ctrl+ Alt+ E),“ 公共语言运行时异常” ->“ System.IO” ->“
System.IO.FileNotFoundException”

您可以在博客文章 C#XmlSerializer
FileNotFound异常
(讨论Chris Sells的工具 XmlSerializerPreCompiler
)中找到有关它的另一种方法的信息。

2020-05-19