【发布时间】:2013-06-24 14:49:13
【问题描述】:
我正在尝试在 WebApi 中实现一个输出缓存,它可以缓存过滤器已处理的响应并生成格式化程序未处理的响应。
据我所知,ActionFilterAttribute 的 OnActionExecuting 和 OnActionExecuted 在序列化格式化程序之前执行,因此如果您缓存响应,在缓存命中时您将响应完全相同的内容,并且该内容将再次序列化以进行传输。
作为 MVC 中的一种可能解决方案,我认为您可以通过实现 IResultFilter 来做到这一点,该 IResultFilter 通过缓存序列化响应来覆盖 OnResultExecuted。使用这种方法,我不知道如何拦截请求处理以避免序列化格式化程序,我认为拦截的可能解决方案是创建一个自定义 ActionResult 以由 IResultFilter 直接处理。请注意,此解决方案不适合我,因为我正在 WebApi 应用程序中实现 OutputCache。
【问题讨论】:
标签: asp.net-web-api outputcache