在.NET WCF中,我想使用TransferMode.Streamed。因此我需要有一個Message對象來傳遞多個參數。爲了避免大量的消息類的任何參數組合傳輸,我嘗試了一個模板類。例如,對於兩個參數:在Wcf中如何使用消息類進行流式傳輸?
[MessageContract]
public class StreamMessage<TA,TB>
{
[MessageHeader(MustUnderstand = true)]
public TA Value1;
[MessageBodyMember(Order = 1)]
public TB Value2;
}
如果我使用模板類傳輸一個FileStream對象,客戶端接收始終關閉該流。 服務器:
public StreamMessage<String,FileStream> DownloadFromServer()
{
Console.WriteLine("DownloadFromServer()");
const string filename = @"c:\The\File\Name";
var result = new StreamMessage<String,FileStream>();
result.Value1 = filename;
result.Value2 = File.OpenRead(filename);
return result;
}
這不無消息模板的使用發生。有什麼建議麼?