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的實例,第二個也是唯一的區別是,在第一種情況下,我通過一個變量將統一解析的實例賦值。容器是好的,不是空的。 –