Yan*_*rtz 20
您可以使用Message上的GetReaderAtBodyContents方法访问消息正文:
using (XmlDictionaryReader reader = message.GetReaderAtBodyContents())
{
string content = reader.ReadOuterXml();
//Other stuff here...
}
Run Code Online (Sandbox Code Playgroud)
不是为了取代Yann的答案,而是为了它的价值,这是一个将消息体复制到具有不同动作头的新消息的完整示例.您也可以添加或自定义其他标头作为示例的一部分.我花了太多时间写这篇文章把它扔掉.=)
class Program
{
[DataContract]
public class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
public override string ToString()
{
return string.Format("{0}, {1}", LastName, FirstName);
}
}
static void Main(string[] args)
{
var person = new Person { FirstName = "Joe", LastName = "Schmo" };
var message = System.ServiceModel.Channels.Message.CreateMessage(MessageVersion.Default, "action", person);
var reader = message.GetReaderAtBodyContents();
var newMessage = System.ServiceModel.Channels.Message.CreateMessage(MessageVersion.Default, "newAction", reader);
Console.WriteLine(message);
Console.WriteLine();
Console.WriteLine(newMessage);
Console.WriteLine();
Console.WriteLine(newMessage.GetBody<Person>());
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22530 次 |
| 最近记录: |