Assembly.GetTypes()
本文关键字:GetTypes Assembly | 更新日期: 2023-09-27 18:16:07
我有这个在我的代码:
Assembly assembly = Assembly.LoadFile(dllFile);
//dllFile has the correct value of a path of a .dll file
foreach (Type type in assembly.GetTypes()) {...}
当我调试程序时,一切正常。当我为我的程序创建exe时,代码进入assembly.GetTypes()并停止执行。什么可能导致assembly.GetTypes()在调试时与使用exe时的工作方式不同?
看看这个链接:
http://social.msdn.microsoft.com/forums/en us/netfxbcl/thread/3bdaf65c - 520 c - 4 - a1a a825 fc2ca2957bf3/
永远不要使用Assembly.LoadFile()。如果知道,可以使用LoadFrom()程序集位于哪里,使用Load()让。net找出在哪里大会已就位。使用Load()应该是您的首选,但是可能需要一个.config文件来帮助。net找到程序集
感谢@HansPassant
当你创建一个exe文件时,你必须确保你的程序集在正确的文件夹中,并且exe文件可以访问该文件夹。
您可以订阅该事件并从您已知的位置执行简单的Assembly.LoadFrom
,甚至可以基于您设计的某些系统执行一些自己的花哨加载。在AppDomain
中还有TypeResolve
和ResourceResolve
事件,它们允许您处理解决AppDomain
的各种依赖关系的那些方面。