我看到默认情况下,MVC4 WebApi项目有2个IFilterProviders
:ConfigurationFilterProvider
和ActionDescriptorFilterProvider
。设置自定义IFilterProvider
进行属性依赖性注入时,是否适合首先从Filters集合中删除这两个?或者仅删除ActionDescriptorFilterProvider
并将ConfigurationFilterProvider
留在集合中更合适吗?
其次,我看到在针对特定操作构建WebApi Http ActionFilterAttribute
之后,它似乎保持不变。例如,当我在ApiController Get方法上放置自定义动作过滤器时,它仅在第一次调用该方法时构造。对api方法的后续调用似乎重用了相同的过滤器(构造函数断点仅在第一次调用期间被命中)。这是正确的吗?为什么它与MVC actionfilter不同,后者为每个方法调用创建一个新实例?
答案 0 :(得分:1)
是否适合首先从Filters集合中删除这两个?
我成功地在Action Filters上实现了依赖注入,而没有删除这些FilterProviders。事实上,我正在使用StructureMap在我的示例中扩展ActionDescriptorFilterProvider
。
http://evolutionarydeveloper.blogspot.co.uk/2012/11/webapi-actionfilter-dependency.html
我无法解释你害怕的第二个问题: - )