castle-windsor – 如何在ASP.NET 4 RC WebAPI中将依赖注入到动
发布时间:2020-12-16 04:19:36 所属栏目:asp.Net 来源:网络整理
导读:我正在使用Windsor在WebAPI项目中为我的控制器管理IoC.我有一个很好地解决控制器依赖关系的DependencyResolver,但现在我想将依赖关系注入我用来管理身份验证的自定义操作过滤器. 我已经研究过使用自定义的ActionInvoker,但是从接口上看,WebAPI正在使用如何在
我正在使用Windsor在WebAPI项目中为我的控制器管理IoC.我有一个很好地解决控制器依赖关系的DependencyResolver,但现在我想将依赖关系注入我用来管理身份验证的自定义操作过滤器.
我已经研究过使用自定义的ActionInvoker,但是从接口上看,WebAPI正在使用如何在执行之前解析自定义操作过滤器属性的属性依赖关系并不清楚.任何人都有一个很好的例子,说明如何在MVC 4 RC中做到这一点? 编辑:我知道你不能对过滤器进行构造函数注入,因为它们是属性,因此由.NET框架实例化 – 但我希望执行生命周期中的某些点在过滤器实例化之后发生但是在执行之前,我可以运行一些自定义代码来枚举过滤器的公共属性并注入必要的服务. 解决方法
动作过滤器是属性.在.NET属性中,实例化过程由.NET运行时管理,您无法控制它.所以一种可能性是使用
Poor Man’s Dependency Injection,我个人建议你反对.
另一种可能性是使用标记属性: public class MyActionFilterAttribute : Attribute { } 然后使用构造函数注入动作过滤器: public class MyActionFilter : ActionFilterAttribute { private readonly IFoo _foo; public MyActionFilter(IFoo foo) { _foo = foo; } public override void OnActionExecuting(HttpActionContext actionContext) { if (actionContext.ActionDescriptor.GetCustomAttributes<MyActionFilterAttribute>().Any()) { // The action is decorated with the marker attribute => // do something with _foo } } } 然后在Application_Start中将其注册为全局操作过滤器: IFoo foo = .... GlobalConfiguration.Configuration.Filters.Add(new MyActionFilter(foo)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 如何将POCO控制器作为控制器发现?
- asp.net-mvc – MVC – 编辑对象列表
- asp.net – 我可以在Medium trust中创建一个可写的文件夹吗
- asp.net-mvc – 如何在没有其他操作匹配的情况下为我的控制
- asp.net – 新的dotnet核心项目无法恢复
- asp.net-mvc – 同时发送文件并重定向到新页面的MVC方式是什
- asp.net-mvc – 如何在一个视图中使用两个IENumerable模型
- asp.net-mvc-3 – 默认模型绑定器没有绑定到字段的原因是什
- asp.net-mvc – 嵌套对象的远程ViewModel验证无效
- asp.net-mvc – 列表中的MVC4绑定下拉列表(bug)
推荐文章
站长推荐
- asp.net-mvc-3 – Ninject – 无法找到资源
- asp.net-mvc-4 – 具有自定义角色的MVC 4 Intran
- mvc项目架构搭建之UI层的搭建 架构搭
- Visual Studio Git本地Repos和GitHub远程Repos互
- .net core下验证码及二维码登录的实现
- HttpHandler无法在ASP.NET MVC3 Web应用程序中工
- ASP.NET MVC jquery自动填充值和文本字段
- asp.net-mvc – ASP.NET MVC 3列表到IEnumerable
- asp.net-mvc – 如何将httppostedfilebase转换为
- 如何创建ASP.NET Web场?
热点阅读