继承LIst 的类JSON序列化,无法序列化属性的问题

摘要:
//////Pagedlist/////T[JsonObject(MemberSerialization=MemberSerializations.OptIn)]publicclassPagedList:列表,IPagedList{//////Ctor///˂
/// <summary>
    /// Paged list
    /// </summary>
    /// <typeparam name="T">T</typeparam>
    [JsonObject(MemberSerialization = MemberSerialization.OptIn)] 
    public class PagedList<T> : List<T>, IPagedList<T> 
    {
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="source">source</param>
        /// <param name="pageIndex">Page index</param>
        /// <param name="pageSize">Page size</param>
        /// <param name="getOnlyTotalCount">A value in indicating whether you want to load only total number of records. Set to "true" if you don't want to load data from database</param>
        public PagedList(IQueryable<T> source, int pageIndex, int pageSize, bool getOnlyTotalCount = false)
        {
            var total = source.Count();
            this.TotalCount = total;
            this.TotalPages = total / pageSize;

            if (total % pageSize > 0)
                TotalPages++;

            this.PageSize = pageSize;
            this.PageIndex = pageIndex;
            if (getOnlyTotalCount)
                return;
            this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
        }

        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="source">source</param>
        /// <param name="pageIndex">Page index</param>
        /// <param name="pageSize">Page size</param>
        public PagedList(IList<T> source, int pageIndex, int pageSize)
        {
            TotalCount = source.Count;
            TotalPages = TotalCount / pageSize;

            if (TotalCount % pageSize > 0)
                TotalPages++;

            this.PageSize = pageSize;
            this.PageIndex = pageIndex;
            this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
        }

        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="source">source</param>
        /// <param name="pageIndex">Page index</param>
        /// <param name="pageSize">Page size</param>
        /// <param name="totalCount">Total count</param>
        public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount)
        {
            TotalCount = totalCount;
            TotalPages = TotalCount / pageSize;

            if (TotalCount % pageSize > 0)
                TotalPages++;

            this.PageSize = pageSize;
            this.PageIndex = pageIndex;
            this.AddRange(source);
        }

        /// <summary>
        /// Page index
        /// </summary> 
        [JsonProperty]
        public int PageIndex { get;   }

        /// <summary>
        /// Page size
        /// </summary> 
        [JsonProperty]
        public int PageSize { get;   }

        /// <summary>
        /// Total count
        /// </summary> 
        [JsonProperty]
        public int TotalCount { get;  }

        /// <summary>
        /// Total pages
        /// </summary> 
        [JsonProperty]
        public int TotalPages { get;  }

        /// <summary>
        /// Has previous page
        /// </summary>
        [JsonProperty]
        public bool HasPreviousPage
        {
            get {
                return PageIndex > 0;
            }
            set {

            }
        }

        /// <summary>
        /// Has next page
        /// </summary>
        [JsonProperty]
        public bool HasNextPage
        {
            get
            {
                return PageIndex + 1 < TotalPages;
            } 
        }
        [JsonProperty]
        public List<T> Items
        {
            get
            {
                return this.ToList();
            } 
        }
    }

  

留意   [JsonObject(MemberSerialization = MemberSerialization.OptIn)] 

[JsonProperty]

免责声明:文章转载自《继承LIst 的类JSON序列化,无法序列化属性的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇概率论12 矩与矩生成函数2018级软件秋季总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ehcache历史变迁及常用API的使用(转)

  ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案。同时ehcache作为开放源代码项目,采用限制比较宽松的Apache License V2.0作为授权方式,被广泛地用于Hibernate, Spring,Cocoon等其他开源系统...

redis 序列化存入对象

redis 序列化存入对象 //序列化 public static byte[] serialize(Object obj){ ObjectOutputStream obi=null; ByteArrayOutputStream bai=null; try{ ba...

推荐:Java性能优化系列集锦

Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难。随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了。现代JVM持续演进,内建了更为成熟的优化技术、运行时技术和垃圾收集器。与此同时,底层的硬件平台和操作系统也在演化。 目录: 一、Java性能优化系列之一--设计优化 二、J...

Django-rest-framework --- 总结

目录 drf回顾总结 drf基础知识点 1.drf框架安装 安装 drf框架规矩的封装风格 drf请求生命周期 2.接口 3.restful接口规范 4.基于restful规范的原生Django接口 主路由:url.py api组件的子路由:api/url.py 模型层:model.py 后台层:admin.py 数据库迁移 视图层:vi...

监控Spark应用方法简介

监控Spark应用有很多种方法。Web接口每一个SparkContext启动一个web UI用来展示应用相关的一些非常有用的信息,默认在4040端口。这些信息包括:任务和调度状态的列表RDD大小和内存使用的统计信息正在运行的executor的信息环境信息你可以在浏览器中打开http://<driver-node>:4040网址来访问这些信息。如...

gson介绍

java json对象的处理,目前有好一些类库,比较著名的有Jackson,Fastjson等。 这里介绍一下google封装的类库gson。 gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要 使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。 1)...