Надеюсь, этот вопрос не слишком очевиден, однако я делаю первые шаги в теме сериализации и не могу найти объяснения для следующего поведения:
Я хотел сериализовать класс дляпроверить, правильно ли я все настроил.Для этого я взял код из этого урока и адаптировал его следующим образом:
private void SerializePresets(string path)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyClass));
using (TextWriter writer = new StreamWriter(path))
{
xmlSerializer.Serialize(writer, this);
}
}
Этот метод находится в пределах MyClass
и также вызывается оттуда.Это дает мне следующее исключение:
Исключение типа 'System.InvalidOperationException' произошло в System.Xml.dll, но не было обработано в коде пользователя
Дополнительная информация:ошибка, отражающая тип 'MyClass'.
Так как MyClass
сначала содержит другой объект класса в качестве свойств, я подумал, что я должен сделать эти сериализуемые тоже, но исключение все еще сохраняется.Итак, я предполагаю, что невозможно сериализовать this
, однако я не смог найти подтверждения этой догадке.
РЕДАКТИРОВАТЬ: Это свойство вызывает проблему в соответствии с внутренним исключением:
[XmlArray("VolumePresetList"), XmlArrayItem(typeof(LinearAxisColorPresetsModel), ElementName = "VolumePresetList")]
public ObservableCollection<LinearAxisColorPresetsModel> VolumePresetList { get; set; }