概要
オブジェクトを簡単にXMLファイル、XMLファイルをオブジェクトにします。
定義メソッド
```csharp
public static class XmlUtility
{
public static void Serialize(T obj, string filePath)
{
using (var sw = new StreamWriter(filePath, false, new UTF8Encoding(false)))
new System.Xml.Serialization.XmlSerializer(typeof(T)).Serialize(sw, obj);
}
public static T Deserialize<T>(string filePath)
{
var returnValue = default(T);
using (var sr = new StreamReader(filePath, new UTF8Encoding(false)))
returnValue = (T)new System.Xml.Serialization.XmlSerializer(typeof(T)).Deserialize(sr);
return returnValue;
}
}
<h1>使用コード</h1>
```csharp
class MainClass
{
public static void Main()
{
var sample = new SampleClass() { Message = "test" };
// 書き込み(シリアル化
sample.Save();
// 読み込み(逆シリアル化
var sample2 = SampleClass.Load();
}
}
public class SampleClass
{
public int Number;
public string Message;
public static readonly string FilePath = @".\sampleclass.xml";
public static SampleClass Load()
{
return XmlUtility.Deserialize<SampleClass>(FilePath);
}
public void Save()
{
XmlUtility.Serialize<SampleClass>(this, FilePath);
}
}
注意
シリアル化したいオブジェクトがArrayList、Hashtable、Dictionaryなどである場合は、このままではうまく行きません。(参考 DOBON.NETより)
参考
http://dobon.net/vb/dotnet/file/xmlserializer.html