2012-12-14 18 views
3

嗨,我正在構建一個wcf服務,我試圖使它發送請求作爲StreamedResponse.Now我的服務用於返回對象的列表,現在應該返回只是一個stream.My的問題是我如何將這個對象列表轉換爲流,以便它可以正確發送。我正在寫我的WCF服務在C#。謝謝你的時間如何將對象列表轉換爲流

+0

如果你從WCF返回一個Stream,你基本上完全負責序列化。所以「正確發送」取決於你的序列化和協議(json/xml/binary)。然而WCF會處理傳輸(tcp/http/msmq)。你能詳細說明一下情況嗎? – faester

+0

好的,我使用json.And我測試了它,服務器已經發回給我正確的其他對象,但是在這個特定的方法中,尺寸太大了,所以我改變了它到streamedRequest.I've試圖發送返回一個對象並且它正常工作。 – Libathos

回答

3

我建議你序列化將您的列表轉換爲JSON或XML,然後將其轉換爲流。假設你的列表包含字符串,下面是一個將字符串列表序列化爲json並將其加載到內存流中的示例。我希望這對你有一些教育價值,並讓你更好地理解這種編程語言的可能性:)

List<string> listOfStrings = new List<string>(); 
listOfStrings.Add("Hello"); 
listOfStrings.Add("World!"); 
listOfStrings.Add("Foo"); 
listOfStrings.Add("bar"); 


// this is of datatype string 
var json = new JavaScriptSerializer().Serialize(listOfStrings); 

// this is an array of datatype byte 
var bytes = System.Text.Encoding.UTF8.GetBytes(json); 

// your stream 
var memStream = new MemoryStream(bytes); 

// TODO: Add code for sending your memory stream 
+0

好的這是非常有用的thx.But我已經在operationContract中說過,響應將是Json格式,是否有必要手動進行轉換? – Libathos

+0

要確保您應該檢查以查看響應的當前格式。這是確定的唯一途徑。 – Maritim

+0

我檢查過它,它在json.I've已經在小規模測試,它的工作有望現在將沒有問題。謝謝你的時間 – Libathos

相關問題