WCF消息大小

时间:2011-02-24 17:22:21

标签: wcf

在将邮件发送回客户端之前,有没有办法测试邮件的大小?我想在服务方面处理最大邮件大小配额。

1 个答案:

答案 0 :(得分:1)

您可以编写自定义MessageEncoder,在服务端使用它,并检查其WriteMessage方法中的编码邮件大小。

关注this guide并以这种方式覆盖方法:

public override ArraySegment<byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
{
    var result = this.text.WriteMessage(message, maxMessageSize, bufferManager, messageOffset);

    // Encoded message check logic.
    Console.WriteLine("Message sent. Length=" + result.Count);

    return result;
}

public override void WriteMessage(Message message, Stream stream)
{
    var position = stream.Position;

    this.text.WriteMessage(message, stream);

    // Encoded message check logic.
    Console.WriteLine("Message sent. Length=" + (stream.Position - position));
}