0

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

谢谢

4

2 回答 2

3

您可能会使用WhenInjectedInto()ninjectIBindingWhenSyntax<T>接口。

所以,绑定代码看起来像

kernel.Bind<IRepository>().To<RepA>().WhenInjectedInto<ClassA>();
kernel.Bind<IRepository>().To<RepB>().WhenInjectedInto<ClassB>();
于 2012-04-18T10:15:54.347 回答
-1

据我记得, Inject 属性已被弃用,不应使用。我会使用构造函数来注入它,或者在特定的类中我会使用这种方法 IKernel kernel = new StandardKernel(); var 武士 = kernel.Get();

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

于 2012-04-18T10:15:15.423 回答