C#の勉強 〜XMLの読み書き〜
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml.Serialization; namespace MyTestProgram { /// <summary> /// 人の情報管理クラス /// </summary> public class Person { private string _name;/// 名前 private int _old;/// 年齢 /// <summary> /// _nameの設定・取得プロパティ /// </summary> public string Name { get { return _name; } set { _name = value; } } /// <summary> /// _oldの設定取得プロパティ /// </summary> public int Old { get { return _old; } set { _old = value; } } } /// <summary> /// プログラムのメインクラス /// </summary> class Program { private static string _filePath = "test.xml";/// 読み書き対象ファイル private static Person _person = new Person(); static void Main(string[] args) { _person.Name = "powerbombkun"; _person.Old = 100; WriteXML(_filePath, _person); _person = ReadXML(_filePath); } /// <summary> /// XMLファイルに書き込むメソッド /// </summary> /// <param name="filePath">ファイルパス</param> /// <param name="instance">Person型オブジェクト</param> private static void WriteXML(string filePath, Person instance) { using (FileStream fs = new FileStream(filePath, FileMode.Create)) { XmlSerializer serializer = new XmlSerializer(typeof(Person)); serializer.Serialize(fs, instance); fs.Close(); } } /// <summary> /// XMLファイルを読み込むメソッド /// </summary> /// <param name="filePath">ファイルパス</param> /// <returns>Person型オブジェクト</returns> private static Person ReadXML(string filePath) { using (FileStream fs = new FileStream(filePath, FileMode.Open)) { XmlSerializer serializer = new XmlSerializer(typeof(Person)); Person person = (Person)serializer.Deserialize(fs); fs.Close(); return person; } } } }
XMLSerializerクラスを使うとコード量も少なく簡単にできました。