WCF 4 REST - 获取用于写入的底层响应流对象

时间:2012-03-09 06:52:27

标签: .net wcf rest c#-4.0

后台:我目前正在使用Visual Studio 2010在线模板“WCF REST服务模板40(CS)”,它非常适合我的主要基于JSON的服务。我甚至让它在返回图像时返回一个流。

场景:我目前正在调查服务器推送& multipart / x-mixed-replace技术取代我目前使用的图像轮询方法。

问题:我面临的问题是我无法找到获取REST请求的基础响应流的方法,我知道模板试图通过抽象来帮助远离我,但为了正确实现multipart / x-mixed-replace机制,我需要直接写入此流并完全控制我写给客户端的内容。

非常感谢任何帮助。服务器推送技术似乎很酷!

1 个答案:

答案 0 :(得分:0)

我已经在回复中返回了各种各样的内容,包括文档,电子表格等。它看起来像这样:

[ServiceContract]
public class MyService
{
    [OperationContract]
    [WebGet(UriTemplate="{id}")]
    public Stream GetDocuments(int id)
    {
       WebOperationContext.Current.OutgoingResponse.ContentType = GetContentType();
       Stream result = CreateTemporaryStream();
       /* Write your data in the correct format */
       return result; 
    }  
}

您几乎可以返回任何您想要的格式。客户端显然必须能够解析流并从响应中提取单个流。