Объясните прочитать объект сообщения один раз с WCF?
У меня есть 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 ответ
Вы можете скопировать ваше сообщение в буфер и поиграть с ним. Более подробную информацию о работе с сообщениями вы можете найти по следующей ссылке: http://msdn.microsoft.com/en-us/library/ms734675.aspx