Как передать класс унаследованный от List в Get запросе?

Рейтинг: 1Ответов: 0Опубликовано: 09.03.2023

Я хочу создать класс 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; }
}

Но композиция это не то что я хотел. Как мне настроить сериализацию для первой реализации?

Ответы

Ответов пока нет.