• WCF中的自定义集合类型传输


    WCF中的自定义集合类型,如果作为服务契约的一部分进行发布,必须要保证以下几点:

    1.集合包含的类型必须使用[Serializable]和[DataContract]标记;

    2.集合包含的类型属性必须使用 [DataMember]标记,并且,如果是属性(Property),必须要实现get和set;

    3.集合类型必须使用[Serializable]和[CollectionDataContract]标记,以及[KnownType]标记指向集合包含的子类型;

    4.集合类型必须实现IEnumerable<T>接口;

    5.集合类型使用[DataMember]标记的IList将集合项向客户端公开.

    样例如下:


    namespace Sharpnessdotnet
    {
        [Serializable]
        [DataContract]
        public class Sharpnessdotnet
        {
            private string name;
            [DataMember]
            public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value;
                }
            }
        }
        [Serializable]
        [CollectionDataContract]
        [KnownType(typeof(Sharpnessdotnet))]
        public class SharpnessdotentCollection : IEnumerable<Sharpnessdotnet>
        {
            [DataMember]
            public IList<Sharpnessdotnet> List;
            public SharpnessdotentCollection()
            {
                List = new List<Sharpnessdotnet>();
            }
            public void Add(Sharpnessdotnet obj)
            {
                List.Add(obj);
            }
            public IEnumerator<Sharpnessdotnet> GetEnumerator()
            {
                return List.GetEnumerator();
            }

            IEnumerator IEnumerable.GetEnumerator()
            {
                return List.GetEnumerator();
            }
        }
    }
  • 相关阅读:
    influxdb + cadvisor + grafana 监控 docker容器应用性能
    zabbix_get命令
    【工作笔记】python+influxdb+grafana监控云行情
    沙雕与大婶 | 把5W2H融入你的架构设计吧
    GO系列 | 5分钟入门GO【译】
    Docker深入浅出系列 | 5分钟搭建你的私有镜像仓库
    Docker深入浅出系列 | Swarm多节点实战
    Docker如何给Springboot项目动态传参
    沙雕与大婶 | Mock掉你的外部依赖吧
    ed后缀读音规则
  • 原文地址:https://www.cnblogs.com/guanjie20/p/2382086.html
Copyright © 2020-2023  润新知