JSON десериализация переменной именованного параметра с использованием DataContract
Предполагая, что у нас есть объект JSON, похожий на:
{
'12345': 'text string',
'rel': 'myResource'
}
Создание DataContract для сопоставления с этим типом кажется довольно простым, например:
[DataContract]
MyResource
{
[DataMember(Name = "12345")]
public string SpecialValue { get; set; }
[DataMember(Name = "rel")]
public string Rel { get; set; }
}
Теперь возникает проблема, что имя свойства является переменным, поэтому оно не обязательно будет «12345». Поскольку эта переменная не может быть правильно отображена с использованием атрибутов, она не будет выбрана при использовании DataContractJsonSerializer.
Если я изменю класс на поддержку IExtensibleDataObject, я могу получить часть значения, но не имя свойства, что является проблемой. Я хочу сохранить это значение во время десериализации / сериализации, чтобы можно было отправлять информацию по запросу на возврат. Я не собираюсь переходить на использование Json.NET для решения этой проблемы, так как хочу знать, возможно ли это в той или иной форме, не прибегая к внешней зависимости.