0
IObjectVmFactory objectVMFactory = this.Container.Resolve<IObjectVmFactory>();
这将引发NullReferenceException。赋值生成System.NullReferenceException
如果我没有的this.Container.Resolve
结果赋值给一个变量,它不会抛出:
this.Container.Resolve<IObjectVmFactory>().AnyMethod(...)
这有没有意义的我...有人可以给我一些解释?
的额外信息:
this.Container
不为空肯定的。三重检查。如果它为空,则第二行将失败。
实施IObjectVmFactory
的类没有定义的构造函数,所以在IObjectVmFactory
实现中没有发生异常。
该异常没有内部异常,并直接指向第一行。
直接在Inmediate Window上执行该行会生成一个(''为空)消息。
谢谢!
第一个是'this.Container.Resolve();'第二个是'this.Container.Resolve ()。CreateInstance(...)'。你的代码本身解释说,第一个没有创建它的实例,而第二个是。因此它是自我解释的。 –
ViVi
你确定'Container'不是'null'吗? 'NullReferenceException'从哪里来? – Haukinger
第一个是创建一个IObjectVmFactory的实例,第二个也是唯一的区别是,在第一种情况下,我通过一个变量将统一解析的实例赋值。容器是好的,不是空的。 –