当子类使用Newtonsoft.json实现IList <T>时,如何序列化基类属性?

时间:2020-11-06 15:07:52

标签: c# list serialization json.net

我有一个继承基类并实现IList的类。我正在序列化此类的对象。但是在json字符串中,我没有获得基类的属性。

我的课看起来像

public class MyCustomList<T> : Paging, IList<T>
{
    private IList<T> _internalList = new List<T>();
    public int Count => _internalList.Count;
    public bool IsReadOnly => _internalList.IsReadOnly;

    public IEnumerator<T> GetEnumerator()
    {
        return _internalList.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return _internalList.GetEnumerator();
    }

    public void Add(T item)
    {
        _internalList.Add(item);
    }

    public void AddRange(MyCustomList<T> items)
    {
        foreach (T item in items)
        {
            _internalList.Add(item);
        }
    }

    public void Clear()
    {
        _internalList.Clear();
    }

    public bool Contains(T item)
    {
        return _internalList.Contains(item);
    }

    public void CopyTo(T[] array, int arrayIndex)
    {
        _internalList.CopyTo(array, arrayIndex);
    }

    public bool Remove(T item)
    {
        return _internalList.Remove(item);
    }

    public int IndexOf(T item)
    {
        return _internalList.IndexOf(item);
    }

    public void Insert(int index, T item)
    {
        _internalList.Insert(index, item);
    }

    public void RemoveAt(int index)
    {
        _internalList.RemoveAt(index);
    }

    public T this[int index]
    {
        get => _internalList[index];
        set => _internalList[index] = value;
    }
}

我的Main函数看起来像

static void Main(string[] args)
    {
        MyCustomList<string> myList = new MyCustomList<string>();
        myList.Add("Sample Text 1");
        myList.Add("Sample Text 2");
        myList.Add("Sample Text 3");

        myList.firstPage = 1;
        myList.nextPage = 2;
        myList.previousPage = 0;
        myList.lastPage = 16;

        string jsonStr = JsonConvert.SerializeObject(myList, Formatting.None);

        Console.WriteLine(jsonStr);
        Console.ReadKey();
    }

我的输出看起来像

[“示例文本1”,“示例文本2”,“示例文本3”]

但是在输出基本属性中,例如firstPage,nextPage等...不可见。

我如何也可以序列化这些基本属性?

0 个答案:

没有答案
相关问题