AppDomain.CurrentDomain.GetAssemblies 失败并出现 ReflectionTypeLoadException

2024-05-01

在单元测试期间,我遇到了以下代码的问题,该代码要求所有加载的程序集:

var res = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(x => x.GetTypes())
.ToList();

此代码失败并出现 ReflectionTypeLoadException,该异常具有模式的内部异常

无法加载类型 Microsoft.Xml.Serialization.GenerateAssembly.FOO

where FOO一些特定的类也是我们编码的。

当在上面使用 XDocument 类创建 XML 文档之前运行单元测试时,就会出现问题。

我可能不需要加载这些代码生成的类(我猜测 Microsoft.Xml.Serialization.GenerateAssembly.* 是代码生成的。)我只是想了解出了什么问题。


您应该检查程序集的 Is Dynamic 字段,该字段在 .netframework 4 及更高版本中可用。

var res = AppDomain.CurrentDomain.GetAssemblies().Where(ass => ass.IsDynamic == false)
.SelectMany(x => x.GetTypes())
.ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AppDomain.CurrentDomain.GetAssemblies 失败并出现 ReflectionTypeLoadException 的相关文章

随机推荐