有没有办法在ASP.NET中使用多个响应过滤器?
HttpContext.Current.Response.Filter = MyFilter1
HttpContext.Current.Response.Filter = MyFilter2
这段代码很清楚,无法正常工作。它使用新实例覆盖当前过滤器。
那么,这个场景的最佳实践是什么。
感谢和最好的问候。
答案 0 :(得分:2)
过滤器是写入另一个Stream的Stream。通常你构建一个这样的过滤器:
response.Filter = new MyStream(response.Filter);
要使用多个过滤器,您可以这样做:
response.Filter = new FirstFilterStream(response.Filter);
response.Filter = new SecondFilterStream(response.Filter);
答案 1 :(得分:1)
只能应用一个响应过滤器,因此您需要汇总此过滤器中的所有工作。 Here's an example如何实现这一目标:
Response.Filter = new TrimStream(new CompressStream(Response.Filter));
这样您就可以组合多个流。