关于web api ActionFilterAttribute,FilterProvider和Dependency Injection的一些问题

时间:2012-09-07 15:12:29

标签: c# .net asp.net-mvc dependency-injection asp.net-web-api

我看到默认情况下,MVC4 WebApi项目有2个IFilterProvidersConfigurationFilterProviderActionDescriptorFilterProvider。设置自定义IFilterProvider进行属性依赖性注入时,是否适合首先从Filters集合中删除这两个?或者仅删除ActionDescriptorFilterProvider并将ConfigurationFilterProvider留在集合中更合适吗?

其次,我看到在针对特定操作构建WebApi Http ActionFilterAttribute之后,它似乎保持不变。例如,当我在ApiController Get方法上放置自定义动作过滤器时,它仅在第一次调用该方法时构造。对api方法的后续调用似乎重用了相同的过滤器(构造函数断点仅在第一次调用期间被命中)。这是正确的吗?为什么它与MVC actionfilter不同,后者为每个方法调用创建一个新实例?

1 个答案:

答案 0 :(得分:1)

  

是否适合首先从Filters集合中删除这两个?

我成功地在Action Filters上实现了依赖注入,而没有删除这些FilterProviders。事实上,我正在使用StructureMap在我的示例中扩展ActionDescriptorFilterProvider

http://evolutionarydeveloper.blogspot.co.uk/2012/11/webapi-actionfilter-dependency.html

我无法解释你害怕的第二个问题: - )