Сериализация XML класса List от List
От: CyberMerlin  
Дата: 23.01.15 14:26
Оценка:
Есть классы:
[XmlRoot("dummys")]
public class Dummys : List<Dummy>{
}
 
[XmlType("dummy")]
public class Dummy : List<Dummy> {
  [XmlAttribute]
  public int id;
  [XmlAttribute]
  public string name;
  [XmlText]
  public string description;
}


надо получить:
<?xml ...>
<dummys>
  <dummy id="1" name="Benladen">
    some text
    <dummy id="4">ziga</dummy>
  </dummy>
  <dummy id="2" name="Obama">--</dummy>
  <dummy id="3" name="Husein">---</dummy>
</dummys>


делаю так:
...
XmlSerializer serializer = new XmlSerializer( dummys.GetType() );
serializer.Serialize( writer, dummys, ns );


никаких исключилок не сыплется, нагрузки на процессор почти нету, НО и программа в состоянии "задумалась" и не реагирует при попадании на строку new XmlSerializer()
как я полагаю — уходит в рекурсию, потому что (опять гипотетически) она строит структуру пустую, в которую потом будет данные вносить, но т.к. список в списке, то она не может до конца построить всю структуру...

есть может у кого идеи, может кто сталкивался с этим?

не хочу опять возвращаться к ручному XmlWriter и через XmlNode\Document работать ...
Re: Сериализация XML класса List от List
От: _ichensky Европа https://github.com/ichensky
Дата: 23.01.15 16:08
Оценка:
Здравствуйте, CyberMerlin, Вы писали:


CM>как я полагаю — уходит в рекурсию,


из-за этой строки уходит в рекурсию:
CM>public class Dummy : List<Dummy> {

Надо класс спроектировать иначе.
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
Re: Сериализация XML класса List от List
От: btn1  
Дата: 23.01.15 16:55
Оценка: -1
Здравствуйте, CyberMerlin, Вы писали:

CM>не хочу опять возвращаться к ручному XmlWriter и через XmlNode\Document работать ...


Нехочуха какой! Юзай силу JSON, Люк!
Re[2]: Сериализация XML класса List от List
От: CyberMerlin  
Дата: 25.01.15 01:03
Оценка: -1
Здравствуйте, _ichensky, Вы писали:

_>Надо класс спроектировать иначе.

Как иначе? Если мне нужна мощь в следующем виде:
task = new Task();
task.Add(new Task());
tasks.Add(task);
...

и тому подобные удобства
Re[2]: Сериализация XML класса List от List
От: CyberMerlin  
Дата: 25.01.15 01:04
Оценка:
Здравствуйте, btn1, Вы писали:

B>Нехочуха какой! Юзай силу JSON, Люк!

Не в данный момент.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.