我正在尝试动态加载一些项目的程序集。
当我通过像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()
方法会导致错误:
无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息
并且LoaderExceptions属性包含所有已定义的类型。
答案 0 :(得分:1)
确保正确加载程序集使用的所有必需参考。
' LoaderException' Exception对象中的属性告诉您哪些类型不可检索。