2009-11-05 41 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編碼。