xmlserialization在声明序列化器时停止
本文关键字:序列化 声明 xmlserialization | 更新日期: 2023-09-27 18:02:51
在我的项目中,我使用List<Name>
存储数据。现在我想通过XMLSerialization保存List
:
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);
}
}
在main中,我在构造函数中声明了:
nameslist = new NameList(); //this a global internal variable
与List<File>
对象完全相同…
Name
在其当前定义中是不可XML序列化的。XML序列化器不能处理缺少公共无参数actor的类。因此,您基本上应该在Name
中包含以下元素:
public Name()
{
}