@saxer

Как в asp net mvc правильно преобразовать наследуемый объект в Json?

Допустим есть базовый класс
public class ProductDto
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual List<PriceDto> Prices { get; set; }
    }

А так же класс от него наследуемый:
public class ProductVm:ProductDto
{
public new List<PriceVm> Prices { get; set; }
}


При создании класса наследника и попытке его перевести в JSON я получаю два свойства Prices разных типов, можно ли как то сформировать JSON корректно?
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 1
schart
@schart
.NET Developer
Сам код выглядит достаточно костыльно.
Использовать new для переопределения свойств методов, стоит если это __действительно__ очень надо и никак-никак по-другому сделать нельзя.

Насколько я понимаю, PriceVm наследуется от PriceDto
Тогда, например, можно сделать вот так:
public abstract class ProductDtoBase<T> where T : PriceDto
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual List<T> Prices { get; set; }
}

public class ProductDto : ProductDtoBase<PriceDto>
{
}

public class ProductVm : ProductDtoBase<PriceVm>
{
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы