Ninject 注射对子类不起作用



我正在尝试在第三级子类上添加绑定,但我找不到合适的方法。我正在使用Ninject 3.0,我有以下情况:

public class ClassBase 
{
  [Inject]
  public IRepository RepositoryInstance { get; set; }
}
public class ClassA : ClassBase {} 
public class ClassB : ClassA {}
public class RepA : IRepository {}
public class RepB : IRepository {}
如何将 RepA

绑定到 ClassBase,以便 ClassA 可以拥有该存储库,而 ClassB 应该绑定到 RepB?

谢谢

您可以使用

WhenInjectedInto() ninject IBindingWhenSyntax<T>接口。

因此,绑定代码将如下所示

kernel.Bind<IRepository>().To<RepA>().WhenInjectedInto<ClassA>();
kernel.Bind<IRepository>().To<RepB>().WhenInjectedInto<ClassB>();

据我所知,Inject 属性已弃用,不应使用。我会使用构造函数来注入它,或者在特定的类中我使用这种方法IKernel kernel = new StandardKernel();VaR 武士 = 内核。获取();

如图所示: https://github.com/ninject/ninject/wiki/Dependency-Injection-With-Ninject

相关内容

  • 没有找到相关文章

最新更新