При работе с JSON необходимо использовать классы, которые сериализуют объекты в строки JSON и десериализуют строки JSON в объекты. При этом могут возникнуть ситуации, в которых строка JSON имеет переменные, названия которых содержат знаки препинания и спецсимволы, что делает невозможным автоматическое преобразование переменных строки JSON в одноименные переменные объекта. Или же в десериализованных объектах просто хочется воспользоваться названиями переменных, которые отличаются от названий переменных из строки JSON. Для этих целей используется пакет System.Runtime.Serialization.
Он дает возможность добавить к классам контрактов аттрибут [DataContract]. Например:
Также он дает возможность добавить аттрибут [DataMember] к их переменным, с опциональным аргументом Name. Например:
При использовании этих аттрибутов сериализация и десериализация классов контрактов изменяется. Вместо всех переменных класса в процессах участвуют только переменные с аттрибутами [DataMember], а название переменной класса контракта равняется названию переменной в строке JSON только тогда, когда аттрибут [DataMember] используется без аргумента Name. В случае же наличия аргумента Name, в строке JSON используется значение этого аргумента.
Для подключения пакета System.Runtime.Serialization нужно сделать следующее: