2009-11-05 89 views
0

如何从WebOperationContext访问底层响应流?从WebOperationContext获取底层响应流

+0

如果你告诉我们你正在尝试做什么,我们可以建议使用WCF做到这一点的最佳方式,因为简短的答案是你不应该这样做的。 – 2009-11-05 21:02:00

+0

实际上,我甚至不确定这会起作用,我有一个下载服务,可以在请求目录时将目录压缩,而不是将zip文件写入磁盘,然后将文件传输给用户,我宁愿直接转到响应流。 – Itamar 2009-11-08 07:55:53

+0

呃,那是“直接写”不是“直接对” – Itamar 2009-11-08 07:56:38

回答

0

将方法的返回类型更改为Stream。

我用返回一个HTML /文本流的代码是:

public Stream GetHTML() 
    { 

     MemoryStream stream = new MemoryStream(); 
     StreamWriter writer = new StreamWriter(stream, Encoding.UTF8); 
     writer.Write("HTML STRING"); 

     conn.Close(); 

     writer.Flush(); 
     stream.Position = 0; 

     WebOperationContext.Current.OutgoingResponse.ContentType = "text/html"; 

     return stream; 
    }  

显然你就会有不同的内容类型,我不认为你将不得不使用UTF8编码。