1

我是否需要在抽象类中做一些不同的事情才能让依赖注入与 Ninject 一起工作?

我有一个带有以下代码的基本控制器:

public abstract class BaseController : Controller
{
    public IAccountRepository AccountRepository
    {
        get;
        set;
    }
}

我的模块如下所示:

public class WebDependencyModule : NinjectModule
{
    public override void Load()
    {
        Bind<IAccountRepository>().To<AccountRepository>();
    }
}

这是我的Global.asax

protected override void OnApplicationStarted()
{
    Kernel.Load(new WebDependencyModule());
}

protected override IKernel CreateKernel()
{
    return new StandardKernel();
}

当我IAccountRepository用属性装饰属性时它起作用[Inject]

4

1 回答 1

2

不确定您要做什么。

看起来你想做属性注入。如果是这样,您必须坚持该属性。

Ninject 不会随意在属性中粘贴东西。

即使可以,从试图理解什么取决于什么的角度来看,你也不会想要它(我已经完全放弃了 PI)。

如果你想进行构造函数注入,具体的 Controller 需要请求一个并将其传递给“BaseController”。

Ninject 将遍历Object并注入 Attributed 属性,但不会abstract以任何特殊方式处理类。

要么,要么我错过了一些东西。

于 2010-05-14T14:10:07.443 回答