Как передать класс унаследованный от List в Get запросе?
Я хочу создать класс Page, с которым смогу работать как с коллекцией и в Get запросе получать его в следующем виде:
{
"items": [],
"pageSize": 100,
"pageNumber": 1,
"lastPage": true
}
Технически это просто List с дополнительной информацией. Попробовал создать класс унаследованный от List:
[DataContract]
public class Page<T> : List<T>
{
[DataMember]
public List<T> Items
{
get => this;
set
{
if (value != null)
AddRange(value);
}
}
[DataMember]
public int PageSize { get; set; }
[DataMember]
public int PageNumber { get; set; }
[DataMember]
public bool LastPage { get; set; }
}
Что я получаю в запросе:
[]
Нужный мне результат возвращается при композиции:
[DataContract]
public class Page<T>
{
[DataMember]
public IList<T> Items { get; set; } = new List<T>();
[DataMember]
public int PageSize { get; set; }
[DataMember]
public int PageNumber { get; set; }
[DataMember]
public bool LastPage { get; set; }
}
Но композиция это не то что я хотел. Как мне настроить сериализацию для первой реализации?
Источник: Stack Overflow на русском