2011-08-09 75 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(从而绕过编解码器)是否允许在不将整个对象加载到内存的情况下发送响应? –