与讨论此主题的所有SO帖子相比,我对在[MessageContract]
中包装流对象不感兴趣,因为在streaming模式下(afaik)不允许这样做
当我处于流模式时,如何向客户端返回一些元数据,例如长度和文件名?我可以添加WCF / SOAP标头吗?我该怎么做?
我正在研究扩展文件流类并添加[MessageHeader]
属性,但我无法让它工作。
答案 0 :(得分: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;
}