在我的项目中,我使用 aList<Name>
来存储数据。现在我想List
通过 XMLSerialization 保存:
XmlSerializer listser = new XmlSerializer(typeof(List<Name>)); //Stops here, jumps back to screen/GUI
FileStream liststr = new FileStream(xmlSaveFile_Dialog.FileName, FileMode.Create);
listser.Serialize(liststr, nameslist.list);
liststr.Close();
现在该方法只是在声明处停止XmlSerializer
。(没有例外!)我使用之前完全相同的方法来序列化另一个对象(List<File>
)。这没有问题。
现在我的代码:名称类:
[Serializable()]
public class Name
{
//[XmlElement("name")]
public string name { get; set; }
//[XmlElement("index")]
public string index { get; set; }
public Name(string name, string index)
{
this.name = name;
this.index = index;
}
}
名单:
[XmlRoot("Units")]
class Namelist
{
[XmlArray("Unitlist")]
[XmlArrayItem("Unit", typeof(Name))]
public List<Name> list;
// Constructor
public Namelist()
{
list = new List<Name>();
}
public void AddNameData(Name item)
{
list.Add(item);
}
}
我主要在构造函数中声明:
nameslist = new NameList(); //this a global internal variable
与我对对象所做的完全相同List<File>
...