ActionAttributeFilter与Delegatinghandler - 优点/缺点?

Hen*_*rik 8 asp.net-web-api2

我想记录来自请求和传出json的传入json数据作为响应.

经过一些搜索后,我注意到可以使用自定义的ActionAttributeFilter和DelegatingHandler.它们有什么优点/缺点吗?

Gua*_*nxi 14

优点/缺点取决于您的需要.

委托处理程序在Web API请求处理的层次结构中比ActionAttributeFilter高得多.如果您实现了Delegating Handler,那么您正在创建一个Message处理程序,而如果您创建了Action过滤器,那么您正在创建在管道中的action方法之前运行的过滤器.

尽管消息处理程序在管道中较早运行,但在最早可用机会处理请求时可能是有利的.消息处理程序针对所有操作方法或至少路径的所有操作方法运行.在选择消息处理程序来解决问题时应该考虑这一点.通过将过滤器配置为全局过滤器,可以将操作过滤器应用于各个操作方法,Controller中的所有方法或所有控制器中的所有方法.