gpt4 book ai didi

c# - 使用 Ninject 的 ASP.NET WebAPI ActionFilters 的依赖注入(inject)不起作用

转载 作者:可可西里 更新时间:2023-11-01 08:48:13 26 4
gpt4 key购买 nike

我正在尝试使用 Ninject 在 ASP.NET WebAPI 中的 ActionFilters 上设置 DI。我按照这里的说明操作: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 Controller 中的所有操作运行。但是,我在过滤器中的两个重写方法都设置了断点,它永远不会被命中。我在配置下了断点,可以确认正在执行。

我错过了什么?我需要这个 ActionFilter 在我项目中的每个 ApiController 中的所有 Action 上运行。

最佳答案

在你的创业类

public void Configuration(IAppBuilder app)
{
var kernel = new StandardKernel();
// register IValidateApiTokenService
var config = new HttpConfiguration();
config.Filters.Add(new ApiAuthorizeFilter(kernel.Get<IValidateApiTokenService>());
}

关于c# - 使用 Ninject 的 ASP.NET WebAPI ActionFilters 的依赖注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37240613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com