Если у меня есть модель данных в которой есть св-во представленное абстрактным классом. Если я возвращаю ответ GET запросом, то JSON сериализатор рабоатет корректно. Если я этот JSON передаю в POST запросе, то привязка не может понять какой объект я передал для абстрактного класса и в итоге в метод прилетает null.
public class ExchangeOptionDto
{
public int Id { get; set; }
public string Key { get; set; }
public bool AutoStartCycleFunc { get; set; }
public ProviderBaseDto Provider { get; set; }
}
public abstract class ProviderBaseDto
{
public string Name { get; set; }
}
public class ManualProviderDto : ProviderBaseDto
{
public string Address { get; set; }
public int TimeRespone { get; set; }
}
public class ByRulesProviderDto : ProviderBaseDto
{
public List<RuleDto> RulesDto { get; set; }
}
public class RuleDto
{
public string Name { get; set; }
public string Format { get; set; }
public RequestDto Request { get; set; }
public ResponseDto Response { get; set; }
}
RequestDto и ResponseDto - не привожу (POCO классы)
GET метод контроллера:
[HttpGet]
public ExchangeOptionDto Get()
{
var exch = new ExchangeOptionDto
{
Id = 1,
Key = "Exch_1",
AutoStartCycleFunc = true,
Provider = new ManualProvider
{
Name = "VidorBase",
Address = "41",
TimeRespone = 1000
}
};
return exch;
}
JSON:
{
"id": 1,
"key": "Exch_1",
"autoStartCycleFunc": true,
"provider": {
"address": "41",
"timeRespone": 1000,
"name": "VidorBase"
}
}
Если этот же JSON передать в теле POST запроса то будет null.
[HttpPost]
public void Post([FromBody]ExchangeOptionDto value)
{
var exch = value;
}
Я так понимаю, в качестве DTO нужно передавать только POCO объекты? Или, как то можно настроить поведение привязки для конкретного типа DTO?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Предположим у меня есть Button с привязкой к команде ViewModelВо ViewModel я пишу:
при создании новой строки я установил в ячейку подсказку с текстом с помощью XAML стиля FallbackValue=Name, цвет подсказки стандартный черный, возможно...