Вы можете написать пользовательский MessageEncoder
, использовать его на стороне службы и проверить размер закодированного сообщения в его WriteMessage
методах.
Следуйте этому руководству и переопределите методы следующим образом:
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));
}