赋值生成System.NullReferenceException

时间:2016-08-29 07:08:20

标签: c# .net clr

IObjectVmFactory objectVMFactory = this.Container.Resolve<IObjectVmFactory>();

抛出NullReferenceException。

如果我没有将this.Container.Resolve的结果赋给变量,它就不会抛出:

this.Container.Resolve<IObjectVmFactory>().AnyMethod(...)

这对我没有意义......有人可以给我一些解释吗?

额外信息:

this.Container肯定不是空的。三重检查。如果它为null,则第二行将失败。

实现IObjectVmFactory的类没有已定义的构造函数,因此IObjectVmFactory实现中不会发生异常。

该异常没有内部异常,直接指向第一行。

直接在中间窗口中执行该行会生成(&#39;&#39;为空)消息。

谢谢!

1 个答案:

答案 0 :(得分:0)

我的项目配置在Release中,而不是Debug。在发布模式下,它会在赋值时抛出异常。在调试中,它会在赋值后抛出步骤:

min-height

所以看起来在发布中使用项目的配置可能会导致错误。尝试将配置切换到调试并找到它失败的位置。

转到Build - &gt;配置管理器

选择您的项目

将配置从Release更改为Debug。

构建并查看错误是否发生在同一个地方。