我有一个控制器和一个自定义的ActionInvoker。我可以将自定义的ActionInvoker设置如下,
public HomeController()
{
this.ActionInvoker = new MyActionInvoker(..);
}
但是不想在每个控制器中执行此操作(我也不想使用基本控制器)。我想使用Ninject注入ActionInvoker。由于ActionInvoker是基本控制器的一部分,我无法添加[inject]。我经常搜索并试过像
这样的东西Bind<HomeController>().ToSelf().WithPropertyValue("ActionInvoker",
x =>x.Kernel.GetService(typeof(IActionInvoker)));
但它没有用。我做错了吗?或任何建议,以达到我想要的。感谢
更新:这样可行,其他错误。谢谢你的答案。
答案 0 :(得分:1)
你试过了吗?
Bind<IActionInvoker>()
.To<MyActionInvoker>()
.Using<SingletonBehavior>();
Bind<HomeController>()
.ToSelf()
.InjectPropertiesWhere(p => p.Name == "ActionInvoker");