首页 文章

WCF IsReference = true将值重置为Default

提问于
浏览
0

我有一个非常简单的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()); 
       }

1 回答

  • 0

    这几乎总是因为客户端没有收到XML,空XML或不兼容的XML . 有时,这是因为在服务端没有正确刷新或关闭流 . 其他时候,客户端在其自己的流中使用完全有效的XML进行操作,但是可能不是从流的开头开始读取XML . 如果在服务端和客户端启用跟踪,生成跟踪日志,并使用SvcTraceViewer进行分析,并且并行使用Fiddler来监控客户端和服务端的线路流量,我想你会发现肯定回答!

相关问题