我有一个麻烦,应该是一个简单的问题.
我有一个服务方法,它接收一个c#消息类型,我想要提取该soap消息的正文,并使用它来构造一个全新的消息.我不能在Message类中使用GetBody<>()方法,因为我不知道什么类型的序列化身体.
解决方法
不要抢占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(); } }
原文地址:https://www.jb51.cc/csharp/93533.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。