2010-11-15 25 views
0

有什麼方法可以在ASP.NET中使用多個響應過濾器?在ASP.NET中使用多個響應過濾器

HttpContext.Current.Response.Filter = MyFilter1 
HttpContext.Current.Response.Filter = MyFilter2 

此代碼很明顯,無法正常工作。它用新實例覆蓋當前過濾器。

那麼,你最好的做法是什麼?

感謝和問候。

回答

1

只能應用單個響應過濾器,因此您需要聚合此過濾器中的所有工作。 Here's an example如何可以實現:

Response.Filter = new TrimStream(new CompressStream(Response.Filter)); 

這種方式可以合併多個流。

+0

謝謝,有趣的解決方案! – Beni 2010-11-15 10:08:01

2

過濾器是寫入另一個Stream的Stream。通常你構建一個過濾器是這樣的:

response.Filter = new MyStream(response.Filter); 

要使用多個過濾器,你做的一樣:

response.Filter = new FirstFilterStream(response.Filter); 
response.Filter = new SecondFilterStream(response.Filter); 
+0

謝謝!這個解決方案在上下文中工作,我不知道每個模塊中的所有過濾器。 – Beni 2010-11-15 10:06:58

相關問題