System.Reflection.Assembly 的空引用异常
我开发了一个用于内部电子邮件报告的库。当我使用另一个项目中的该库时(通过添加引用)。
它在下一行给出了 NullReferenceException 。
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
知道为什么 Assembly 为空吗?
I have developed a Library for internal email reporting. When I am using that Library from another project (By Adding Reference).
It gives NullReferenceException
on the following line.
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
Any idea, why Assembly is null?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是预期的,尤其是在 Windows 服务中,它们是由非托管运行时加载的。
用途:
获取非托管入口点文件。
更新
看来你正在寻找这个:
This is expected especially in the Windows Services where they are loaded by an unmanaged runtime.
Use:
To get unmanaged entry point file.
Update
It seems you are looking for this:
问题已经解决了,
我正在用来
获取 EntryAssemblyName。
在这种情况下,我已经有一个接受异常“ex”的参数,所以我用它来解决它。
非常感谢大家,特别是@Aliostad
Cheers
problem is solved guys,
I am using
to get the EntryAssemblyName.
In this case I already has parameter which is taking Exception 'ex', so I solved it by using that.
Many Thanks Guys, specially @Aliostad
Cheers
回答 OP 和 @Neeraj 的问题:有时,使用
Assembly.GetExecutingAssembly().Location
获取程序集的根也很有用(例如,当 Resharper 测试运行程序正在使您的生活变得更好时)使用GetEntryAssembly()
时很难)Answering both the OP's and @Neeraj 's questions: sometimes it can also be useful to get the root of your assembly with
Assembly.GetExecutingAssembly().Location
(e.g. when the Resharper test runner is making your life hard when usingGetEntryAssembly()
)