【发布时间】:2019-02-28 14:15:17
【问题描述】:
希望这个问题不是太明显,但是我正在迈出序列化主题的第一步,但找不到以下行为的解释:
我想序列化一个类以测试我是否正确设置了所有内容。为此,我采用了the code from this tutorial 并对其进行了如下调整:
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 首先将其他类对象作为属性,我想我也必须制作那些serializabel,但是异常仍然存在。
所以,我的猜测是,不可能序列化this,但是我找不到这个猜测的确认。
编辑:根据内部异常,此属性会导致问题:
[XmlArray("VolumePresetList"), XmlArrayItem(typeof(LinearAxisColorPresetsModel), ElementName = "VolumePresetList")]
public ObservableCollection<LinearAxisColorPresetsModel> VolumePresetList { get; set; }
【问题讨论】:
-
你能添加你对
MyClass的定义吗? -
看看内部异常了吗?
-
@spodger 我会试着把它贴在这里,但我必须先看看它并重命名一些东西,因为它是一个分类项目..
-
问题是,只要
MyClass定义得当,您所尝试的一切都是完全可能的。 -
LinearAxisColorPresetsModel的定义是什么?
标签: c# serialization xml-serialization