System.Reflection.Assembly的空引用异常

时间:2011-02-25 12:14:45

标签: c# system.reflection

我开发了一个用于内部电子邮件报告的库。当我从另一个项目使用该库时(通过添加引用)。

它在以下行中提供NullReferenceException

System.Reflection.Assembly.GetEntryAssembly().GetName().Name

任何想法,为什么大会是空的?

3 个答案:

答案 0 :(得分:20)

特别是在Windows服务中,这是由非托管运行时加载的。

使用:

  Process.GetCurrentProcess().MainModule.FileName

获取非托管入口点文件。


更新

看来你正在寻找这个:

  System.Reflection.Assembly.GetExecutingAssembly().GetName().Name

答案 1 :(得分:1)

问题解决了,

我正在使用

Assembly.GetAssembly(ex.TargetSite.DeclaringType.UnderlyingSystemType).GetName().Name 

获取EntryAssemblyName 在这种情况下,我已经有一个参数,它采用Exception'ex',所以我用它来解决它。

非常感谢各位,特别是@Aliostad

干杯

答案 2 :(得分:0)

在回答这两个OP的和@Neeraj的问题:有时它也可能是有用的,让您装配的根与Assembly.GetExecutingAssembly().Location(例如,当ReSharper的测试运行使用{{1时,让您的生活艰苦}})

GetEntryAssembly()