2011-02-03 18 views
2

將文件名和長度參數添加到WCF流中與所有討論此主題的SO帖子不同,我不想將包裝流對象包裝在[MessageContract]中,因爲在streaming中不允許這樣做模式(afaik)。當Transfermode = Stream

當我處於流模式時,如何返回客戶端的一些元數據,如長度和文件名?我可以添加一個WCF/SOAP標頭嗎?我將如何做到這一點?

我正在尋找擴展文件流類,並添加[MessageHeader]屬性,但我無法得到它的工作。

回答

5

這裏是我們如何做到這一點

 [MessageContract] 
    public class StreamMessage 
    { 
     [MessageHeader(MustUnderstand = true)] 
     public long Length { get; set; } 
     [MessageHeader(MustUnderstand = true)] 
     public int ServerVersion { get; set; } 
     [MessageHeader(MustUnderstand = true)] 
     public byte[] Cerificate { get; set; } 
     [MessageBodyMember(Order = 1)] 
     public Stream Stream; 
    } 
+0

你可以看到消息包含流。我們通過https流發送非常大的文件時一路使用流媒體。 – 2011-02-03 19:43:28