1

我有一个简单的 IClientMessageInspector:

public class ConsoleMessageTracer : IClientMessageInspector
{
    public void AfterReceiveReply(ref Message reply, object correlationState)
    {
        Console.WriteLine(reply.ToString());
    }

    public object BeforeSendRequest(ref Message request, IClientChannel channel)
    {
        Console.WriteLine(request.ToString());
    }
}

AfterReceiveReply工作正常,但BeforeSendRequest... Datastream ... 写入控制台。

(实际上它写道... Datenstrom ...,因为我有一个德国安装的 .Net 并且Thread.CurrentThread.CurrentCulture似乎被忽略了。)

如何访问我的请求消息的实际正文?

4

2 回答 2

1

您需要阅读流以获取整个消息。但是,您还需要确保以允许之后读取/写入消息的方式这样做。有关如何实现此目的的完整详细信息,请参阅此说明。

于 2012-08-07T00:08:49.273 回答
0

您好,您可以尝试使用此代码 - InputStream

    string documentContents = string.Empty;
    using (Stream receiveStream = Request.InputStream)
    {
        using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
        {
            documentContents = readStream.ReadToEnd();
        }
    }
于 2012-08-06T13:29:03.930 回答