无法从继承自 List 的类序列化对象

问题描述 投票:0回答:1

有一个类继承自 List 本身,它的工作方式就像魅力:

    public class ClassAsList: List<ClassAsList> 
    {
        public object valueA { get; set; } = null;
        public object valueB { get; set; } = null;
    }

使用这样的类,您不需要属性“subObjects”或“items”,因为类已经包含其自身的列表。此外,在此类对象中导航也更容易。

唯一的一个问题是,我找不到如何序列化“ClassAsList”类型的对象的方法。结果始终是一个空括号列表。

ClassAsList cas = new ClassAsList();
//put some values in cas
var json = JsonSerializer.Serialize<ClassAsList>(cas, options);

如果我使用 DataContractJsonSerializer,我会收到以下异常:

异常

有什么想法吗?

c# json list serialization
1个回答
0
投票

部分解决方案可以是 smoksnes 中的答案 使用从 List 继承的类进行 JSON 序列化并且它工作得很好

该类继承自 IList<>,而不是 List<>。当然,接口必须实现。

缺点是必须存在属性“Items”。

另一方面,“添加”、“包含”等方法可以直接在对象上使用(不使用“项目”)

所以,我仍在寻找原始问题的解决方案和答案

© www.soinside.com 2019 - 2024. All rights reserved.