鉴于以下课程:
public sealed class GorpCollection : IEnumerable<Gorp> {
private readonly IReadOnlyCollection<Gorp> _gorps;
public GorpCollection(string name, IEnumerable<Gorp> gorps) {
_gorps = gorps.ToList().AsReadOnly();
GorpType1 = _gorps.Where(gorp => gorp.GorpType == 1).ToList().AsReadOnly();
GorpType2 = _gorps.Where(gorp => gorp.GorpType == 2).ToList().AsReadOnly();
Name = name;
}
public string Name { get; }
public IReadOnlyCollection GorpType1 { get; }
public IReadOnlyCOllection GorpType2 { get; }
public IEnumerator<Gorp> GetEnumerator => _gorps.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable) _gorps).GetEnumerator();
}
我想将它作为具体类序列化为JSON对象,而不是作为数组出现的IEnumerable
。我对要序列化的属性Name
,GorpType1
和GorpType2
感到满意。
最简单的方法是使用自定义转换器,绑定器和设置最少搞乱?我会想到一个简单的属性,例如[SerializeAs(typeof(GorpCollection))]
。但是后来进行了大量的搜索,我仍然不知道如何完成这项工作。