Criar uma cópia em buffer da mensagem do WCF
Eu tenho o seguinte código em um inspetor de mensagem para examinar o corpo da resposta. Eu entendo que a mensagem do WCF só pode ser lida uma vez, então eu crio uma cópia primeiro. Mas com o seguinte código eu ainda recebo o erro "Esta mensagem não pode suportar a operação porque foi lida." ... Estou faltando alguma coisa?
<code> MessageBuffer buffer = message.CreateBufferedCopy(Int32.MaxValue); Message copy = buffer.CreateMessage(); message = copy; XmlDictionaryReader bodyReader = copy.GetReaderAtBodyContents(); bodyReader.ReadStartElement("Binary"); byte[] bodyBytes = bodyReader.ReadContentAsBase64(); string messageBody = Encoding.UTF8.GetString(bodyBytes); return messageBody; </code>
Também não me sinto confortável usando Int23.MaxValue lá. O que seria um tamanho razoável?