c# – 依赖注入ASP.NET WebAPI ActionFilters使用Ninject不工作
发布时间:2020-12-15 18:00:11 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Ninject在ASP.NET WebAPI中的ActionFilters上设置DI.我按照这里的指示: https://github.com/ninject/Ninject.Web.WebApi/wiki/Dependency-injection-for-filters 我创建我的ActionFilter像这样: public class ApiAuthorizeFilter : Abstract
我正在尝试使用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控制器中的所有操作运行.但是,我已经在过滤器中的两个被覆盖的方法中设置了断点,并且它从未被触发.我在配置中设置了一个断点,可以确认它正在执行. 我失踪了什么我需要这个ActionFilter在我的项目中的每个ApiController中的所有操作上运行. 解决方法
在你的启动类
public void Configuration(IAppBuilder app) { var kernel = new StandardKernel(); // register IValidateApiTokenService var config = new HttpConfiguration(); config.Filters.Add(new ApiAuthorizeFilter(kernel.Get<IValidateApiTokenService>()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |