Можно ли использовать DataMember для перезаписи сериализованного значения свойства

Я играл с сериализацией объектов, и мне интересно, можете ли вы использовать DataMember атрибут для перезаписи сериализованного значения на основе условия? Например, если бы у меня было это свойство в моем классе:

[DataMember]
public string Foo { get; set; }

и я создаю экземпляр моего класса, где Foo установлен в IsFooбыло бы возможно для меня использовать DataMember атрибут для сериализации в нечто вроде этого:

<Foo>Bar</Foo>

Обратите внимание, что это гипотетический вопрос и что в реальной жизни это, безусловно, будет плохая практика или проблема с данными, но возможно ли это вообще?

1 ответ

Решение

Нет, ты не можешь этого сделать.

[DataMember] атрибут сообщает только WCF DataContractSerializer включить это значение (в свойстве) в сообщение WCF - это не позволяет вам изменять значение в процессе....

Если вам нужно иметь Bar в сообщении WCF, то вы должны установить Foo = "Bar"; в вашем коде...

Другие вопросы по тегам