如何在ASP.NET Web API上对Action Filter执行依赖项注入

cuo*_*gle 21 c# dependency-injection ioc-container asp.net-web-api asp.net-web-api-filters

我真的陷入了将依赖注入到web api的动作过滤器中的方法.我有一个这样的动作过滤器:

public class AuthorizationAttribute : ActionFilterAttribute
{
    public IApiKeyRepository Repository { get; set; }

    private Guid GetApiKey(string customerKey)
    {
        return Repository.GetApiKey(customerKey);
    }

    public override void OnActionExecuting(HttpActionContext actionContext)
    {        
    }
}
Run Code Online (Sandbox Code Playgroud)

我想使用Windsor在属性Repository上进行属性注入(但是使用哪个IoC容器并不重要)

我确实上来自定义FilterProvider但它没有为我工作,有没有人有解决方案或运行代码?非常感谢

Pai*_*ook 1

您可以使用 Ninject.Web.WebApi 程序集(显然使用 Ninject 作为 IoC)来完成这项工作。我建议通过https://github.com/ninject/Ninject.Web.WebApi查看源代码和 SampleApplication ,以了解它们如何完成过滤器注入。