我有一个类继承List<T>并添加了一个类属性
public class DrivenList : List<int>
{
public string Name {get;set;}
private DrivenList() { }
public DrivenList(string name) { this.Nname = name; }
}
Run Code Online (Sandbox Code Playgroud)
当使用 Newtonsoft.Json JSON 序列化对象时,我仅获得列表项。([1,2,3])
有什么想法如何将Name属性添加到结果中吗?
解决:通过将此属性添加到列表中
[JsonObject(MemberSerialization = MemberSerialization.Fields)]
public class DrivenList : List<int>
Run Code Online (Sandbox Code Playgroud)
小智 4
据我所知,Newtonsoft 你能做的就是这样:
[JsonObject(MemberSerialization = MemberSerialization.Fields)]
public class DrivenList : List<int>
{
[JsonProperty]
public string Name { get; set; }
private DrivenList() { }
public DrivenList(string name) { this.Name = name; }
}
Run Code Online (Sandbox Code Playgroud)
但这会添加您不需要的(可能)字段。
就我个人而言,我会进行组合而不是继承:
public class DrivenList
{
public string Name { get; set; }
public List<int> Items { get; set; }
private DrivenList() { }
public DrivenList(string name) { this.Name = name; }
}
Run Code Online (Sandbox Code Playgroud)