我目前正在寻找自己的集合,这就像一个常规列表,除了它只能容纳10个项目.如果在列表中已有10个项目时添加了项目,则在添加新项目之前将删除第一个项目.
我想要做的是创建一个扩展的类,System.Collections.Generic.List<T>然后修改Add(T item)方法以包含在必要时删除第一个项目的功能.
我有一个自定义集合(实现IList),它有一些自定义属性,如下所示:
class FooCollection : IList<Foo> {
private List<Foo> _foos = new List<Foo>();
public string Bar { get; set; }
//Implement IList, ICollection and IEnumerable members...
}
Run Code Online (Sandbox Code Playgroud)
当我序列化时,我使用以下代码:
JsonSerializerSettings jss = new JsonSerializerSettings() {
TypeNameHandling = TypeNameHandling.Auto
};
string serializedCollection = JsonConvert.SerializeObject( value , jss );
Run Code Online (Sandbox Code Playgroud)
它正确地序列化和反序列化所有收集项目; 但是,FooCollection不考虑课堂上的任何额外属性.
无论如何将它们包含在序列化中?