当前位置:  开发笔记 > 前端 > 正文

我可以将DataMember添加到WCF中的CollectionDataContract吗?

如何解决《我可以将DataMember添加到WCF中的CollectionDataContract吗?》经验,为你挑选了1个好方法。

我有一个我用CollectionDataContract装饰的集合类.集合类还在类上有一个属性,我希望将其传递给服务客户端.我已经尝试将[DataMember]添加到该属性,但是当我更新时它没有将它添加到客户端的类中.

那里的任何WCF专家都有任何帮助吗?



1> Boris Modyle..:

我的博客上发布了一个可行的解决方案:

http://borismod.blogspot.com/2009/04/wcf-collectiondatacontract-and.html

UPD:谢谢,你的评论,杰夫.以下是非泛型类的摘要.完整的通用解决方案可以在我的博客的新帖子中找到:http://borismod.blogspot.com/2009/06/v2-wcf-collectiondatacontract-and.html

[DataContract(IsReference = true)]    
public class EntityCollectionWorkaround : ICollection 
    {

        #region Constructor
        public EntityCollectionWorkaround()
        {
            Entities = new List();
        } 
        #endregion

        [DataMember]
        public int AdditionalProperty { get; set; }

        [DataMember]
        public List Entities { get; set; }

        #region ICollection Members
          // Implement here members of ICollection by wrapping Entities methods
        #endregion

        #region IEnumerable Members
          // Implement here members of IIEnumerable by wrapping Entities methods
        #endregion

    }


很好的博客文章,但如果你在这里给出一个快速摘要,那将是很好的.
+1是一个很好的解决方案!我太困惑了以为我需要使用`CollectionDataContract`来集合序列化.使用`IXmlSerializable`我将不得不手动处理大量的序列化,"DataContractSerializer"对我来说毫无价值.这个答案对我来说很难找到,所以我用你的答案详细阐述了我的解决方案,并将其作为下面的新答案发布.希望以后其他人更容易找到.
我很高兴您发现我5岁的答案很有用:-)
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有