Ситуация. У меня есть несколько вызовов API веб-сервисов, которые предоставляют структуры объектов. В настоящее время я объявляю явные типы для связывания этих структур объектов. Для простоты здесь приведен пример:
[HttpGet]
[ProducesResponseType(typeof(MyType), 200)]
public MyType TestOriginal()
{
return new MyType { Speed: 5.0, Distance: 4 };
}
Улучшение. У меня есть множество этих пользовательских классов, таких как MyType
, и я бы хотел использовать общий контейнер. Я наткнулся на названные кортежи и могу успешно использовать их в своих методах контроллера, например:
[HttpGet]
[ProducesResponseType(typeof((double speed, int distance)), 200)]
public (double speed, int distance) Test()
{
return (speed: 5.0, distance: 4);
}
Проблема Я столкнулся с тем, что разрешенный тип основан на базовом Tuple
, который содержит эти бессмысленные свойства Item1
, Item2
и т.д. Пример:
Вопрос. Кто-нибудь нашел решение, чтобы получить имена названных кортежей, сериализованных в мои ответы JSON? В качестве альтернативы, кто-нибудь нашел общее решение, которое позволяет иметь один класс/представление для случайных структур, которые можно использовать, чтобы ответ JSON явно указывал то, что он содержит.