Json.Net Переименовать свойства во время сериализации [дубликат]

На этот вопрос уже есть ответ здесь:

Альтернативное имя свойства при десериализации 2 ответа

У меня есть библиотека ям, с которым у меня нет абсолютно никакого контроля. Объекты отформатированы с именами свойств следующим образом:

{"my property": "my value"}

а также

{"my-property": "my value"}

Используя json.net, я могу добавить атрибут к свойствам в классе, который представляет каждое сообщение, чтобы сопоставить эти имена свойств со свойством в моем классе:

public class MyClass
{
  [JsonProperty(PropertyName="my-prop")]
  public String MyProperty {get; set;}
}

Это хорошо, но проблема в том, что я должен использовать этиволшебные струны на большое количество классов, и я действительно презираю магические струны.

Суть:

Есть ли способ изменить все эти свойства в читаемую строку C #, чтобы json.net автоматически отображал эти свойства?

т.е .:

{"my property": "my value"}

Должен измениться на:

{"MyProperty": "my value"}

Во время десериализации, которая затем передавала бы это значение члену MyProperty в MyClass, не помечая свойство жестко закодированным строковым значением.

Ответы на вопрос(1)

Ваш ответ на вопрос