访问自定义WCF MessageEncoder中的内容长度

时间:2013-08-13 20:59:13

标签: c# wcf c#-4.0

我试图通过实现自定义MessageEncoder并重写ReadMessage方法来显示流式WCF消息的进度。我可以下载数据并报告进展情况,但我有兴趣在此之前了解完整的邮件大小。

在编码器或其他地方可以在实际下载之前查看传入消息的大小吗?我知道HTTP标头中的长度是可用的,但我没有看到访问它们的方法。

这是我到目前为止所做的:

public override Message ReadMessage(Stream stream, int maxSizeOfHeaders, string contentType)
{
    MemoryStream content = new MemoryStream();
    byte[] buffer = new byte[512];
    var bytesRead = 0;

    do
    {
        bytesRead = stream.Read(buffer, 0, buffer.Length);
        content.Write(buffer, 0, bytesRead);

        // Report progress
        this.ReportProgress("Downloading...", bytesRead);
    } while (bytesRead > 0);

0 个答案:

没有答案