当我在类上运行xmlserializer时,它不会输出为嵌套的可观察集合指定的属性。我确保它是公开的,并确保它有一个setter,但是它没有被序列化。
运行xmlserializer会产生此结果:
<ArrayOfArrayOfNote>
<ArrayOfNote>
<Note>
(Many Properties of Note)
</Note>
<Note>
(Many Properties of Note)
</Note>
<ArrayOfNote>
<ArrayOfNote>
<Note>
(Many Properties of Note)
</Note>
<Note>
(Many Properties of Note)
</Note>
<ArrayOfNote>
</ArrayOfArrayOfNote>
当我期望它产生这样的东西时:
<ArrayOfArrayOfNote>
<ArrayOfNote>
<Title>SomeTitle</Title>
<Note>
(Many Properties of Note)
</Note>
<Note>
(Many Properties of Note)
</Note>
<ArrayOfNote>
<ArrayOfNote>
<Title>SomeTitle</Title>
<Note>
(Many Properties of Note)
</Note>
<Note>
(Many Properties of Note)
</Note>
<ArrayOfNote>
</ArrayOfArrayOfNote>
这是我用于xmlserializer的代码(我相信这不是问题)
XmlSerializer serialiser = new XmlSerializer(typeof(NoteBookList));
TextWriter writer = new StreamWriter(@"Notes.xml");
serialiser.Serialize(writer, modules);
writer.Close();
这是我所期望的未序列化的类
[Serializable]
public class NoteBook : ObservableCollection<Note>
{
public NoteBook()
{
}
public NoteBook(string title)
{
Title = title;
}
public string Title { get; set; }
}
谢谢!
您的Notes类需要看起来像这样:
public class Notes
{
[XmlArray("ArrayOfArrayOfNote")]
[XmlArrayItem("ArrayOfNote")]
public NoteBook[] noteBook { get; set; }
public string Title { get; set; }
}