У меня проблемы с пониманием сериализации одного из моих объектов.
Сценарий:
Я получаю данные от службы в заданном формате.Я хочу принять данные как есть.Из-за соглашений об именах я должен использовать свойства DataMember, чтобы сопоставить входящие данные с правильно названными свойствами класса.Я использую System.Runtime.Serialization для этого.Пример:
[DataContract]
public class IncomingData
{
[DataMember(Name = "$Filename")]
public string Filename { get; set; }
}
Это нормально работает, и данные сопоставляются с внутренним именем свойства.В какой-то момент мне пришлось снова сериализовать этот объект, и я наивно думал, что он будет сериализован с внутренним именем свойства, например,
{ "Filename":"C:\temp\lala.txt"}
, однако это не так, и вместо него используется исходное имя свойства "$ Filename".Я предполагаю, что это потому, что DataMember работает в обоих направлениях.
Существует ли элегантный способ сериализации этого объекта с именами свойств и игнорирования DataMember?Я пытался, если работает другая библиотека сериализации (JSON.NET), но, похоже, она также следует за DataMember.
Должен ли я обернуть этот объект другим, чтобы достичь?Спасибо за любые подсказки!голуб