rea*_*aln 1 c# wcf message client-server
我想发送一个自定义对象system.servicemodel.Channels.Message.喜欢
public class person
{
string Id;
string Name;
}
MessageVersion mv = MessageVersion.Create(Soap12);
String action = "Msg";
Message msg = Message.Create(mv, action, new person());
serviceref.ProcessMsg(msg) // this is my service reference in client
//when i tried to access this in Service like
person p = msg.GetBody<person>()
//I am getting an serialization exception
//I have the Person class on both client and service side
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄清楚我的错误吗?
看起来你正在寻找一个DataContract:
using System.Runtime.Serialization;
[DataContract]
public class person
{
[DataMember]
string Id;
[DataMember]
string Name;
}
Run Code Online (Sandbox Code Playgroud)
有关DataContracts和WCF的更多信息,请查看使用数据协定.
编辑
不确定这是否可以解决问题,但正如我在回复你的评论中所指出的那样,CreateMessage方法有一个带有XmlObjectSerializer的重载.关于它的MSDN文档相当薄,但我认为这样的事情可能会这样做:
Message msg = Message.Create(mv, action, new person(), new DataContractSerializer(typeof(person)));
Run Code Online (Sandbox Code Playgroud)
我没有对此进行测试,但至少它可能会让你指向正确的方向.
在DataContractSerializer将需要提供的DataContract(person在我的答案的第一部分).
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |