Вот обходной путь, вы можете попробовать использовать атрибут [JsonObject]
. Но элементы не будут сериализованы , потому что контейнер JSON может иметь свойства или элементы, но не оба вместе. Если вы хотите и то и другое, вам нужно добавить синтетическое свойство списка для хранения элементов.
[JsonObject] также приведет к сериализации свойств базового класса, таких как Capacity
, что, скорее всего, вам не нужно. Чтобы подавить свойства базового класса, используйте MemberSerialization.OptIn . Таким образом, ваш последний класс должен выглядеть примерно так:
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
public class FilterList<T> : List<T>
{
[JsonProperty]
public int Total { get; set; }
[JsonProperty]
List<T> Items
{
get
{
return this.ToList();
}
set
{
if (value != null)
this.AddRange(value);
}
}
}
Результат: