Имена - это трюк с компилятором.Если вы посмотрите на определение ValueTuple
, вы увидите, что его имена полей просто Item1
, Item2
и т. Д.
Поскольку JsonConvert.SerializeObject
был скомпилирован задолго до этоговы назначили имена, которые могли бы использовать во время вашей компиляции, она не может восстановить имена.
Параметры метода / типы возврата украшены атрибутами , которые указывают имена, которые должны бытьиспользуется, когда подпись метода включает ValueTuple
s.Это позволяет коду, созданному позже, «видеть» имена, выполняемые компилятором снова, но это «неправильный путь», который будет здесь очень полезен.
Как получить ожидаемый результат
Введите явный тип, если имена полей / свойств так важны.