XmlSerializer, XmlAttributeOverrides и IXmlSerializible,
От: PlotNick.lj Узбекистан plotnick.livejournal.com
Дата: 30.06.09 05:24
Оценка:
Можно ли в XmlSerializer, засунуть такой XmlAttributeOverrides,
чтобы в нем не только имена полей допустим были изменены, но и значения чтобы подсовывались другие.

Я имею ввиду такую ситуацию. Есть у меня класс, который сериализуеться через XmlSerializer, но тут (вот досада) оказываеться,
что XmlSerializer хватает все доступные поля, в том числе и базового класса тоже, а мне эти поля (ну или некоторые из них) ну совсем нафик не срались.
Я конечно могу вручную управлять всем процессом сериализации, наследовав от IXmlSerializible, но там у меня не получаеться сериализовывать вложенные структуры иерархий. Хрен его знает как это делать, у меня никак не получаеться, потому что XmlReader и XmlWriter forward-only и я не могу найти примеров где сериализоывалось что-нибудь типа:

<Users>
 <User Name="Ivanov" Pasword="ivan">
   <Movies>
     <Movie Name="Showshank redeption"/>
     <Movie Name="Green mile"/>
   </Movies>
 </User> 
  <User Name="Petrov">
  </User>
  <User Name=Sidorov">
   <Movies> 
    <Movie Name="Djentelmeny udachy">
    </Movie>
    <Movie Name="Mimino"/>
   </Movies>
  </User>
  <User Kuznetsov />
</Users>


Есть выход — вместо того, чтобы использовать методы IXmlSerializible, использовать XmlAttributeOverrides, и указать тем атрибутам базового класса, которые нам не нужны XmlIgnore (базовый класс библиотечный, потому вариант прописать атрибуты для полей базового класса прямо в нем самом не канает).
Но в этом случае теряеться гибкость управления сериализацией. Допустим нельзя изменить значение элемента (хотя тип и имя) можно.
Для чего это может быть необходимым? Для того, чтобы к примеру криптить пароли, или запихивать в элемент, любое другое произвольное значение.

Видимо второй вариант не возможен, по крайней мере я так и не нашел.
А с первым вариантом я просто как-то туплю. Помогите а?
xml xmlserializer
Re: XmlSerializer, XmlAttributeOverrides и IXmlSerializible,
От: Kore Sar  
Дата: 30.06.09 08:58
Оценка: +1
PL>А с первым вариантом я просто как-то туплю. Помогите а?

А мне почему не ответил? http://rsdn.ru/forum/dotnet/3444915.1.aspx
Автор: Kore Sar
Дата: 27.06.09
Re: XmlSerializer, XmlAttributeOverrides и IXmlSerializible,
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.06.09 18:05
Оценка:
Здравствуйте, PlotNick.lj, Вы писали:

PL>Для чего это может быть необходимым? Для того, чтобы к примеру криптить пароли, или запихивать в элемент, любое другое произвольное значение.


http://en.wikipedia.org/wiki/Single_responsibility_principle
... << RSDN@Home 1.2.0 alpha 4 rev. 1233 on Windows Vista 6.1.7100.0>>
AVK Blog
Re: XmlSerializer, XmlAttributeOverrides и IXmlSerializible,
От: baranovda Российская Империя  
Дата: 30.06.09 18:15
Оценка:
Здравствуйте, PlotNick.lj, Вы писали:

PL>Можно ли в XmlSerializer, засунуть такой XmlAttributeOverrides,

PL>чтобы в нем не только имена полей допустим были изменены, но и значения чтобы подсовывались другие.

Если есть возможность — возьмите лучше DataContractSerializer, он погибче.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.