有一个类继承自 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,我会收到以下异常:
有什么想法吗?
部分解决方案可以是 smoksnes 中的答案 使用从 List 继承的类进行 JSON 序列化并且它工作得很好
该类继承自 IList<>,而不是 List<>。当然,接口必须实现。
缺点是必须存在属性“Items”。
另一方面,“添加”、“包含”等方法可以直接在对象上使用(不使用“项目”)
所以,我仍在寻找原始问题的解决方案和答案