MVC/Unity - 如何将依赖项注入自定义FilterAttributes?

7 asp.net-mvc unity-container filterattribute

我有一个HandleErrorAttribute延伸的习惯FilterAttribute.

如何在注入控制器的依赖项本身的同时将Unity注入依赖项注入此属性?

Ben*_*ins 1

你有两个选择

第一个选项是编写自定义 ActionInvoker,这并不像听起来那么难。查看这篇博文。它专门处理 NInject,但 Unity 支持属性注入,因此您可以修改示例以使用 Unity。

这是耦合 IoC 容器的选项,不推荐。

public class MyFilter 
{ 
  IMyService MyService {get; set;}

  MyFilter() : MyFilter(MyUnityContainer.Resolve<IMyService>())
  { }

  MyFilter(IMyService service)
  {
    MyService = service;
  }
}
Run Code Online (Sandbox Code Playgroud)