猿问

在 Ninject 中重新绑定后获取 NullReference

当我处于特定方法的上下文中时,我试图替换依赖项。


所以我正在做这样的事情:


在我的 Ninject 模块中,我的依赖项最初是这样注册的:


Bind<IMyDependency>().To<OriginalType>();

然后在我要替换依赖项的方法中,我正在使用重新绑定,如下所示:


MyMethod()

{

   _kernel.Rebind<IMyDependency, ReplacementType>();  


   ... some logic ...


   _kernel.Rebind<IMyDependency, OriginalType>();      

}

但是,在第一次重新绑定后,当我尝试解决“IMyDependency”时,我得到了 NullReference


我错过了什么?:)


慕勒3428872
浏览 199回答 1
1回答

天涯尽头无女友

你确定你需要使用&nbsp;&nbsp;_kernel.Rebind<IMyDependency,&nbsp;ReplacementType>();代替&nbsp;&nbsp;_kernel.Rebind<IMyDependency>().To(ReplacementType);?IBindingToSyntax<T1,&nbsp;T2>&nbsp;Rebind<T1,&nbsp;T2>();方法用于重新绑定服务 T1 和 T2,而不是将 T1 解析为 T2。
随时随地看视频慕课网APP
我要回答