我使用内部工具来检索有关我自己的托管dll的一些信息。对于加载dll,我使用System.Reflection.Assembly.LoadFile
。有些dll我得到了例外:
“ClassName”:“System.NullReferenceException”; “消息”:“对象引用未设置为对象的实例。”;
但是这些dll运行良好,可以在应用程序中加载。所有依赖都在同一目录中。有什么建议吗?
非常感谢!!!
P.S。使用方法System.Reflection.Assembly.LoadFrom
;
答案 0 :(得分:2)
LoadFile加载程序集以在当前AppDomain中执行。 (某些)可以执行静态构造函数并计算自定义类属性。在这些情况下,您的某些代码可能会被执行;因此NullReferenceException可能来自您的代码。 StackTrace异常可能会揭示源代码。
编辑:如果要在不执行静态构造函数或计算属性的情况下获取有关程序集的信息,可以查看Assembly.ReflectionOnlyLoad *方法。
答案 1 :(得分:1)
嗯......我不确定这是否有意义,但可能是非托管DLL还是您缺少所需的文件权限?