我有一个非常简单的WCF 4.0服务,我在其中返回一个POCO实体对象,其IsReference设置为true。当我从我的服务返回对象时,原始类型(int,double等)的值被正确设置,并且具有引用的值也正确地被序列化,我已经验证序列化正确地发生在返回之前放入以下代码声明。我还验证了成员用[DataMember]正确标记,他们有公共getter / setter。但是,当调用者接收到对象时,所有基元类型都设置为0,带引用的类型设置为NULL。
非常感谢任何帮助!
try
{
var stream = new MemoryStream();
var dataContractSerializer = new DataContractSerializer(onlineSellItemDetail.GetType());
dataContractSerializer.WriteObject(stream, onlineSellItemDetail);
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException.ToString());
}
答案 0 :(得分:0)
这几乎总是因为客户端没有收到XML,空XML或不兼容的XML。有时,这是因为在服务端没有正确刷新或关闭流。其他时候,客户端在其自己的流中使用完全有效的XML进行操作,但是可能不是从流的开头开始读取XML。如果在服务端和客户端启用跟踪,生成跟踪日志,并使用SvcTraceViewer进行分析,并且并行使用Fiddler来监控客户端和服务端的线路流量,我想你会发现肯定回答!