解释用WCF读取一次消息对象?

时间:2012-06-25 18:37:00

标签: wcf idispatchmessageinspector

我有一个MessageInspector来记录通过的消息?您只能阅读一次消息并且必须创建副本的原因是什么?我已经看到MSDN的文档,我需要创建一个缓冲副本,但我不知道为什么它以这种方式实现?有人可以向我解释一下吗?

private static void SendRequest(string request)
{
var req = (HttpWebRequest) WebRequest.Create("http://urltoservice.svc/MethodToCall");
req.ContentType = "text/xml";
req.Method = "POST";

using (var stm = req.GetRequestStream())
{
    using (var stmw = new StreamWriter(stm))
    {

        stmw.Write(request);
    }
}


byte[] myData;
using (var webResponse = req.GetResponse())
{

    var responseStream = webResponse.GetResponseStream();
    myData = ReadFully(responseStream);
}

// Do whatever you need with the response
string responseString = Encoding.ASCII.GetString(myData);
}

如果我无法访问服务器部分或能够更改MessageInspector以使用消息的缓冲副本,我可以修改上面的消息来制作流的副本吗?如果是这样,我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以将邮件复制到缓冲区中并使用它。 有关处理消息的更多详细信息,请参阅以下链接:http://msdn.microsoft.com/en-us/library/ms734675.aspx