2011-08-09 72 views
2

有誰知道是否可以在OpenRasta中寫入響應流而不是將對象作爲響應資源返回?另外,我能夠實現一個HTTP處理程序,但仍然利用OpenRasta的URL重寫嗎?OpenRasta流式響應

感謝

克里斯

回答

1

您可以始終保持在一邊做專業的事HTTP處理程序,而是將您與asp.net和防止您的代碼被其他主機上的移植。如果這是你可以接受的,任何註冊了特定路由的處理程序都將在asp.net上的openrasta之前執行。

表示編解碼器是寫入響應流的編解碼器,所以假設您有一個自定義的IMediaTypeWriter,您可以根據需要在流上編寫資源實例。

舉例來說,您從您的處理程序返回了一個IEnumerable,因爲那些被延遲執行,您可以開始枚舉那些在您的自定義編解碼器中沒有任何問題。

+0

我還補充一點,如果你返回流本身,這也會工作:) – SerialSeb

+0

屬性response.Stream在編解碼器中是隻讀的。看起來,做一個.CopyTo(response.Stream)會將流的內容加載到內存中。從處理程序返回一個Stream(從而繞過編解碼器)是否允許在不將整個對象加載到內存的情況下發送響應? –