在Ninject中重新绑定后获取NullReference

时间:2018-07-26 14:30:01

标签: c# .net ninject

在特定方法的上下文中,我正在尝试替换依赖项。

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

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

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

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

MyMethod()
{
   _kernel.Rebind<IMyDependency, ReplacementType>();  

   ... some logic ...

   _kernel.Rebind<IMyDependency, OriginalType>();      
}

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

我想念什么? :)

1 个答案:

答案 0 :(得分:0)

确定要使用

  _kernel.Rebind<IMyDependency, ReplacementType>();

代替

  _kernel.Rebind<IMyDependency>().To(ReplacementType);

IBindingToSyntax<T1, T2> Rebind<T1, T2>();

方法用于重新绑定服务T1和T2,而不是将T1解析为T2。