是否有可能使用帶有MessageContract的WCF流式傳輸文件,該文件包含另一個包含其內部流的MessageContract?我認爲答案是否定的,但我更願意將我的文件打包到「Root」消息中。WCF Streaming文件問題
。換句話說我的設置是這樣的:
[MessageContract]
public class Transport
{
[MessageHeader]
private readonly Guid fId;
[MessageHeader]
private readonly DateTime fTimestamp;
[MessageBodyMember(Order = 1)]
public FileTransferMessage FileTransferMessage { get; set; }
}
[MessageContract]
public class FileTransferMessage : IDisposable
{
[MessageBodyMember(Order = 1)]
public Stream FileByteStream;
[MessageHeader(MustUnderstand = true)]
public long FileLength;
[MessageHeader(MustUnderstand = true)]
public string FileName;
}
請求被髮送和接收到服務就好了,但是,它出現的流沒有被正確反序列化和回來的空引用。我知道我已經閱讀了一個規則,在一個MessageContract中聲明Streaming必須是MessageContract的主體,我認爲這就是現在被侵犯的內容。我希望將FileTransferMessage作爲Body,然後將Stream作爲Body的接口。
任何人有什麼建議我可以在這裏做什麼?我不想添加一個Stream/FileName/FileLength到我的傳輸對象。
感謝尤金。我已經決定允許Stream在主要的MessageContract中,我只需要在應用程序文檔中調用它來證明原因。 – Tada