В контексте do tnet core REST api, я хочу возвращать «облегченную» версию объектов при их перечислении, чтобы избежать большого количества ненужных данных. Я пытаюсь использовать для этого полиморфизм:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Student : Person
{
public int Age { get; set; }
}
[HttpGet("testList")]
public List<Person> getPersons()
{
List<Person> testList = new List<Person>();
testList.Add(new Student() { FirstName = "Kevin", LastName = "Smith", Age = 99 });
return testList;
}
[HttpGet("test")]
public Student getStudent()
{
return new Student() { FirstName = "Kevin", LastName = "Smith", Age = 99 };
}
Когда я звоню /testList
, я получаю следующее json:
[
{
"age": 99,
"firstName": "Kevin",
"lastName": "Smith"
}
]
Я ожидал, что return не содержит age
параметр из-за типа возвращаемого значения, но это не так. Есть ли способ получить «облегченную версию» только для метода листинга?
Спасибо,