c# – WCF反序列化返回0个列表元素
发布时间:2020-12-15 21:29:56 所属栏目:百科 来源:网络整理
导读:我在反序列化对象时遇到了一些问题. 我有以下课程: Metadatastore: [DataContract]public class MetadataStore : IEnumerableItemMetadata{ private ListItemMetadata data = new ListItemMetadata(); private string folderPath = null; [DataMember] pub
我在反序列化对象时遇到了一些问题.
我有以下课程: Metadatastore: [DataContract] public class MetadataStore : IEnumerable<ItemMetadata> { private List<ItemMetadata> data = new List<ItemMetadata>(); private string folderPath = null; [DataMember] public string FilePath { // getter and setter } [DataMember] public List<ItemMetadata> Data { // getter and setter } } ItemMetadata: [Serializable()] public class ItemMetadata { // syncid,syncversion,uristring etc.. } 问题: 我正在通过使用输出参数将Metadatastore对象从我的服务器(运行wcf服务)传输到我的客户端.因此,我认为wcf会自动完成此输出参数的序列化/反序列化. 客户端调用该服务: service.GetChangeBatch(out metadatastore_object,otherValue); 服务器响应正确(metadatastore_object已成功填充和序列化 – >没有错误) 我在客户端收到的对象虽然不正确:FilePath填充正确,但List Data对象包含零元素!我还检查了服务器,数据列表包含2个元素.另一个值得注意的奇怪事情是它不是null,它只是一个新创建的空列表. 解决方法
使用CollectionDataContract而不是DataContract.
这里是msdn关于CollectionDataContract的解释: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |