私のプロジェクトでは、List<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>
私がオブジェクトでそれをしたのとまったく同じ方法...