Можно ли использовать DataMember для перезаписи сериализованного значения свойства
Я играл с сериализацией объектов, и мне интересно, можете ли вы использовать DataMember
атрибут для перезаписи сериализованного значения на основе условия? Например, если бы у меня было это свойство в моем классе:
[DataMember]
public string Foo { get; set; }
и я создаю экземпляр моего класса, где Foo
установлен в IsFoo
было бы возможно для меня использовать DataMember
атрибут для сериализации в нечто вроде этого:
<Foo>Bar</Foo>
Обратите внимание, что это гипотетический вопрос и что в реальной жизни это, безусловно, будет плохая практика или проблема с данными, но возможно ли это вообще?
1 ответ
Нет, ты не можешь этого сделать.
[DataMember]
атрибут сообщает только WCF DataContractSerializer
включить это значение (в свойстве) в сообщение WCF - это не позволяет вам изменять значение в процессе....
Если вам нужно иметь Bar
в сообщении WCF, то вы должны установить Foo = "Bar";
в вашем коде...