Внедрение свойства без использования атрибута [Inject] с Ninject - PullRequest
0 голосов
/ 05 мая 2011

У меня есть контроллер и настроенный ActionInvoker. Я могу настроить настроенный ActionInvoker следующим образом:

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

Но я не хочу делать это на каждом контроллере (и я не хочу использовать базовый контроллер). Я хочу использовать Ninject для внедрения ActionInvoker. Поскольку ActionInvoker является частью базового контроллера, я не могу добавить в него [inject]. Я много искал и пробовал что-то вроде

Bind<HomeController>().ToSelf().WithPropertyValue("ActionInvoker", 
   x =>x.Kernel.GetService(typeof(IActionInvoker)));

Но это не сработало. Я делаю это неправильно? Или любое предложение достичь того, чего я хотел. Спасибо

Обновление: Это работает, что-то еще не так. Спасибо за ответы.

1 Ответ

1 голос
/ 05 мая 2011

Вы пробовали:

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


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