Доброго времени суток.
Я делаю класс реслизующий интерфейс IEnumerable и класс самого IEnumerator. Потом пытаюсь сериализовать экземпляр класса.
XmlSerializer xs=new XmlSerializer(typeof(FileCat));
xs.Serialize(fs, _FileCat);
и у меня вылетает исключение с текстом
"There was an error generating the XML document."
Что это может быть?
Здравствуйте, _Kostya_, Вы писали:
Опиши подробнее. Из такого описания понять картину тяжело.
Помечены ли классы атрибутом SerializableAttribute?
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, _Kostya_, Вы писали:
K>Я делаю класс реслизующий интерфейс IEnumerable и класс самого IEnumerator. Потом пытаюсь сериализовать экземпляр класса.
K>XmlSerializer xs=new XmlSerializer(typeof(FileCat));
K>xs.Serialize(fs, _FileCat);
K>и у меня вылетает исключение с текстом
K>"There was an error generating the XML document."
K>Что это может быть?
Запусти свой ехе не из студии и оно тебе покажет нормальную ошибку.
... << RSDN@Home 1.0 beta 6a >>
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _Kostya_, Вы писали:
VD>Опиши подробнее. Из такого описания понять картину тяжело.
VD>Помечены ли классы атрибутом SerializableAttribute?
я уже решил эту проблему с помощью массива, но все-таки хочется узнать.
занчит так, есть классы
public class CatFilesEnumarator: IEnumerator{
ArrayList _files;
int _current;
public CatFilesEnumarator(ArrayList files){
_files=files;
_current=-1;
}
public object Current{
get{
if(_current<0 || _current>=_files.Count)
throw new Exception();
return _files[_current];
}
}
public bool MoveNext(){
if(_current>=_files.Count)
return false;
_current++;
return _current<_files.Count;
}
public void Reset(){
_current=-1;
}
}
и
public class Catalog: IEnumerable{
ArrayList _files;
// несколько свойст помеченных [XmlIgnore]
public Catalog(){
_files=new ArrayList();
}
public IEnumerator GetEnumerator(){
return new CatFilesEnumarator(_files);
}
}
потом делаю класс
public class CatFilesContainer{
public Catalog _cat;
public void SaveToXml(string fileName){
try{
using(FileStream fs=new FileStream(fileName, FileMode.Create)){
XmlSerializer xml=new XmlSerializer(typeof(CatFilesContainer));
xml.Serialize(fs, this);
}
}catch(Exception e){
MessageBox.Show(e.Message);
}
}
}
Так можно сериализовать объект?