gpt4 book ai didi

c# - AppDomain.CurrentDomain.GetAssemblies 因 ReflectionTypeLoadException 而失败

转载 作者:太空狗 更新时间:2023-10-29 21:39:45 25 4
gpt4 key购买 nike

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

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

此代码因 ReflectionTypeLoadException 失败,其中包含模式的内部异常

Could not load type Microsoft.Xml.Serialization.GeneratedAssembly.FOO

其中 FOO 也是我们编写的一些特定类。

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

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

最佳答案

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

var res = AppDomain.CurrentDomain.GetAssemblies().Where(ass => ass.IsDynamic == false)
.SelectMany(x => x.GetTypes())
.ToList();

关于c# - AppDomain.CurrentDomain.GetAssemblies 因 ReflectionTypeLoadException 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com