Я пытаюсь настроить DI на ActionFilters в ASP.NET WebAPI, используя Ninject. Я выполнил следующие инструкции: https://github.com/ninject/Ninject.Web.WebApi/wiki/Dependency-injection-for-filters
Я создаю свой ActionFilter следующим образом:
public class ApiAuthorizeFilter : AbstractActionFilter
{
private readonly IValidateApiTokenService _validateApiTokenService;
public ApiAuthorizeFilter(IValidateApiTokenService validateApiTokenService)
{
_validateApiTokenService = validateApiTokenService;
}
public override bool AllowMultiple => true;
public override void OnActionExecuting(HttpActionContext actionContext)
{
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
}
}
Я сконфигурирован так:
kernel.BindHttpFilter<ApiAuthorizeFilter>(FilterScope.Controller);
Мое понимание, основанное на информации по вышеуказанной ссылке, заключается в том, что ActionFilter должен запускаться для всех действий во всех контроллерах WebAPI. Тем не менее, я установил точки останова как при переопределенных методах в фильтре, так и в них никогда не попадает. Я установил точку останова в конфигурации и могу подтвердить, что она выполняется.
Что мне не хватает? Мне нужен этот ActionFilter для запуска всех действий в каждом ApiController в моем проекте.