我正在尝试在第三级子类上添加绑定,但我找不到合适的方法。我正在使用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