- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个定制HandleErrorAttribute
扩展 FilterAttribute
.
如何让 Unity 在注入(inject) Controller 依赖项本身的同时将依赖项注入(inject)此属性?
最佳答案
好的,想通了。
大多数情况下,我从他指出的博客文章中使用了 Ben 在上面的解决方案。
问题是 Unity 的行为有点不同。
您不能直接在过滤器上注入(inject)依赖项,因为它们分别属于 IActionFilter 和 IExceptionFilter 类型。这让我相信它们是只读的,但事实并非如此。只是 Unity 需要知道显式类型才能注入(inject)。
因此,在文章提供的重写方法中,Unity 用户需要查询过滤器的相关类型,然后构建它们。
public UnityActionInvoker(IUnityContainer container, IList<Type> typesToInject)
{
_container = container;
_typesToInject = typesToInject;
}
var needsInjection = filters.Where(filter => typesToInject.Contains(filter.GetType()));
关于asp.net-mvc - MVC/Unity - 如何将依赖项注入(inject)自定义 FilterAttributes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1035611/
我在 MVC 应用程序的 Controller 中使用了 2 个属性。 AttributeA 扩展 System.Web.Mvc.AuthorizeAttribute和 AttributeB 扩展 S
我的请求示例 http://localhost:8065/api/note POST content-type:application/json request body: { "id" : "123
我正在编写一个授权过滤器属性,但我无法弄清楚如何以字符串形式获取当前 url,以便我可以将其作为参数传递给 LogOn 操作。目标是,如果用户成功登录,他们将被重定向到他们最初尝试访问的页面。 pub
我想这样做: [RequiresAuthentication(CompanyType.Client)] public class FooController { public Acti
这个问题在这里已经有了答案: Using Unity to inject dependencies into a custom ActionFilter (1 个回答) 关闭 7 年前。 我已经在我
我有一个定制HandleErrorAttribute扩展 FilterAttribute . 如何让 Unity 在注入(inject) Controller 依赖项本身的同时将依赖项注入(injec
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我对 HTTPS 和 HTTP 有疑问。看来我的过滤器属性正在被缓存。当我登录时,它应该自动将无 http 页面发送到 https,它确实这样做了。然后,当我注销时,它会保持在 https 上,这很好
我在 ASP.NET MVC 6(beta 4 版本)中遇到困难,试图在 AuthorizationFilterAttribute 类型的 Controller 过滤器属性中注入(inject)服务。
我有一个自定义的 ExceptionFilter,用于记录 Web-Api Controller 内所有未捕获的异常。我想使用 Autofac,向其注入(inject) ILog 配置。 我的问题是如
我有一个简单的自定义 FilterAttribute,我用它装饰各种 ActionMethods。 例如。 [AcceptVerbs(HttpVerbs.Get)] [MyCustomFilter]
我正在为我的 MVC 项目编写自定义 ErrorHandler 属性。我想将 EventViewerLogger 的实现注入(inject)到该属性中。 我正在使用 Ninject 2.2,它对于其他
我是一名优秀的程序员,十分优秀!