【问题标题】:OpenRasta streaming responseOpenRasta 流式响应
【发布时间】:2011-08-09 13:33:12
【问题描述】:

有谁知道是否可以在 OpenRasta 中写入响应流而不是返回一个对象作为响应资源?或者,我是否能够实现 HTTP 处理程序但仍利用 OpenRasta 的 URL 重写?

谢谢

克里斯

【问题讨论】:

    标签: streaming openrasta


    【解决方案1】:

    您始终可以在旁边保留一个 http 处理程序来做专门的事情,但这会将您与 asp.net 联系起来,并且会阻止您的代码在其他主机上移植。如果您同意,任何为特定路由注册的处理程序都将在 asp.net 上的 openrasta 之前执行。

    说,编解码器是写入响应流的,所以只要你有一个自定义的 IMediaTypeWriter,你就可以以任何你想要的方式将资源实例写入流。

    例如,您从处理程序返回了一个 IEnumerable,因为它们被延迟执行,您可以在自定义编解码器中开始枚举它们而没有任何问题。

    【讨论】:

    • 我还要补充一点,如果您返回 Stream 本身,那也可以:)
    • 属性 response.Stream 在编解码器中是只读的。似乎执行 .CopyTo(response.Stream) 会将流的内容加载到内存中。从处理程序返回 Stream(从而绕过编解码器)是否允许在不将整个对象加载到内存的情况下发送响应?
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 2012-05-01
    • 1970-01-01
    • 2019-01-22
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多