DefinedTypes 属性 从内存动态加载程序集时抛出错误

DefinedTypes property throws an error when an assembly is loaded from memory dynamically

我正在尝试动态加载我项目的一些程序集。

当我像 Assembly.LoadFile(path) 这样通过它们的文件路径加载它们时,我可以通过从加载的程序集中调用 GetTypes() 方法来获取它们定义的类型。

var asm = Assembly.LoadFile(path);
var defienedTypes = asm.GetTypes(); //I've got all types without any error

但是当我像 Assembly.Load(System.IO.File.ReadAllBytes(path)) 这样从内存中加载它们时,我无法检索定义的类型。所以调用 GetTypes() 方法会导致错误:

Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information

并且 LoaderExceptions 属性 包含所有已定义的类型。

确保程序集使用的所有必需引用都已正确加载。

'LoaderException' 属性 在 Exception 对象中告诉您哪些类型不可检索。