Наследование .NET Core Controller - PullRequest
0 голосов
/ 17 мая 2018

Я искал этот вопрос, и, хотя были заданы похожие вопросы, я не смог найти ответ.

Итак, у меня проблема.У меня есть 2 класса:

public class Person {
public string name{ get; set; }
}

public class Doctor: Person{
public string specialization{ get; set; }
}

И у меня есть контроллер:

[HttpPost]
...
public virtual IActionResult PostPerson([FromBody]Person person)
        { ... }

Как я могу сделать так, чтобы, если я отправляю JSON так:

{"specialization":"obgyn"}

что я получаю объект Doctor в моем контроллере?

Нужно ли создавать пользовательские привязки (есть ли пример? Однако у меня гораздо больше таких классов (100ts), поэтому я не хотел бы делать это длякаждый класс отдельно) или установить JsonOptions в Startup.cs, или что-то третье ??

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Таким образом, способ получить эту работу заключается в том, чтобы в вашем файле Startup.cs добавить JSonOptions:

opts.SerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All;

После этого будут добавлены свойства $ type к ответу, а также будет прочитано $ type из входящего Json.Сообщения.К сожалению, желание моих клиентов изменилось, потому что он не хочет идентифицировать класс по этому полю, а по другому - по индивидуальному заказу, так что это решение не для меня, но ответ на мой вопрос все же поможет кому-то

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...