asp.net-mvc – MVC / Unity – 如何将依赖项注入自定义FilterAttributes?
发布时间:2020-05-24 15:32:36 所属栏目:asp.Net 来源:互联网
导读:我有一个扩展FilterAttribute的自定义HandleErrorAttribute. 如何在注入控制器的依赖项本身的同时将Unity注入依赖项注入此属性? 好吧,想通了. 大多数情况下,我在他指出的博客文章中使用了Ben的解决方案. 问题是Unity的行为有点不同. 您不能直接在过滤器上注
|
我有一个扩展FilterAttribute的自定义HandleErrorAttribute. 如何在注入控制器的依赖项本身的同时将Unity注入依赖项注入此属性? 解决方法好吧,想通了.大多数情况下,我在他指出的博客文章中使用了Ben的解决方案. 问题是Unity的行为有点不同. 您不能直接在过滤器上注入依赖项,因为它们分别是IActionFilter和IExceptionFilter类型.这让我相信他们只是读书,但事实并非如此.只是Unity需要知道显式类型才能注入. 因此,在本文提供的重写方法中,Unity用户需要查询过滤器以查找相关类型,然后构建它们. public UnityActionInvoker(IUnityContainer container,IList<Type> typesToInject)
{
_container = container;
_typesToInject = typesToInject;
}
然后在重写的方法中,执行以下操作: var needsInjection = filters.Where(filter => typesToInject.Contains(filter.GetType())); 有点混乱,但它只需要做一次,并保持一切脱钩,如本建议. 另一个问题是你不能在foreach循环中调用_container.BuildUp(filter),因为过滤器在该上下文中是只读的. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- nuget-package – 如何创建和使用ASP.NET vNext类库NuGet包
- 当调用ASP.NET System.Web.HttpResponse.End()时,当前线程中
- asp.net-mvc – 命中错误:在解析器和自定义注册提供程序中
- asp.net-mvc-3 – MVC将方法添加到jquery.validate.unobtru
- asp.net – @ Html.EditorForModel()下拉列表
- 验证 – ASP.NET MVC 4避免生成datetime的data-val-date
- asp.net – 限制关于AJAX调用的视图状态信息
- asp.net – 此版本的SQL Server不支持用户实例登录标志 连接
- asp.net-mvc – ASP.NET MVC 3:RouteExistingFiles = true
- asp.net-mvc – MVC4中的ELMAH和API控制器不记录错误
推荐文章
站长推荐
- asp.net – 没有透明度的div中的div的不透明度
- asp.net – BC30560:’default_aspx’在命名空间
- asp.net – 无法加载程序集“App_Web_kh7-x3ka”
- asp.net – 如何通过render事件禁用CalendarExte
- asp.net – 如何使用ajax调用跨域web api?
- 有没有办法通过ASP.NET和app_offline.htm来显示图
- ASP.Net Web应用程序安全性不适用于IIS 7?
- asp.net – app_offline.htm在生产框中抛出HTTP
- asp.net-mvc – ASP.NET MVC 3 RC和Azure?
- asp.net – 标签中的换行符
热点阅读
