不使用带有Ninject的属性[Inject]的属性注入

时间:2011-05-05 11:27:06

标签: asp.net-mvc dependency-injection ninject

我有一个控制器和一个自定义的ActionInvoker。我可以将自定义的ActionInvoker设置如下,

public HomeController()
{
    this.ActionInvoker = new MyActionInvoker(..);
}

但是不想在每个控制器中执行此操作(我也不想使用基本控制器)。我想使用Ninject注入ActionInvoker。由于ActionInvoker是基本控制器的一部分,我无法添加[inject]。我经常搜索并试过像

这样的东西
Bind<HomeController>().ToSelf().WithPropertyValue("ActionInvoker", 
   x =>x.Kernel.GetService(typeof(IActionInvoker)));

但它没有用。我做错了吗?或任何建议,以达到我想要的。感谢

更新:这样可行,其他错误。谢谢你的答案。

1 个答案:

答案 0 :(得分:1)

你试过了吗?

Bind<IActionInvoker>()
    .To<MyActionInvoker>()
    .Using<SingletonBehavior>();


Bind<HomeController>()
    .ToSelf()
    .InjectPropertiesWhere(p => p.Name == "ActionInvoker");