我是否需要在抽象类中执行不同的操作以使依赖注入与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]
属性时,它可以正常工作。
答案 0 :(得分:2)
不确定你要做什么。
看起来你想做Property Injection。如果是这样,你必须坚持属性。
Ninject并没有随意地将东西粘在属性中。
即使它可以,你也不想从试图理解什么取决于什么的角度来看它(我已经完全脱离了PI)。
如果你想进行构造函数注入,具体的Controller需要请求一个并将其传递给'BaseController'。
Ninject将转到Object
并注入属性,但不会以任何特殊方式处理abstract
类。
或者我错过了什么。