コードレビューについて、C#、List<T>やジェネリックな配列をXmlシリアライズ・デシリアライズする拡張メソッド
自分でC#でListやT[]をXmlシリアライズ・デシリアライズする拡張メソッドを書いたのですが、例外処理はどうすればいいのか(使う側で定義するのか使われる側で定義するのか等)と、あと書き方について指摘を頂きたいです。よろしくお願いします。
///<summary> Xmlをジェネリックな配列に読み込むメソッド </summary>
public static void LoadXml<T>(this T[] list, string path)
{
T[] xmldata = null;
XmlDocument xdoc = new System.Xml.XmlDocument();
XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(T[]));
xdoc.PreserveWhitespace = true;
xdoc.Load(path);
XmlNodeReader xnr = new System.Xml.XmlNodeReader(xdoc.DocumentElement);
xmldata = (T[])xml.Deserialize(xnr);
for (int i = 0; i < xmldata.Length; i++)
list[i] = xmldata[i];
}
///<summary> XmlをList<T>に読み込むメソッド </summary>
public static void LoadXml<T>(this List<T> list, string path)
{
list.Clear();
T[] xmldata = null;
XmlDocument xdoc = new System.Xml.XmlDocument();
XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(T[]));
xdoc.PreserveWhitespace = true;
xdoc.Load(path);
XmlNodeReader xnr = new System.Xml.XmlNodeReader(xdoc.DocumentElement);
xmldata = (T[])xml.Deserialize(xnr);
for (int i = 0; i < xmldata.Length; i++)
list.Add(xmldata[i]);
}
/// <summary> ジェネリックな配列をXmlにセーブするメソッド </summary>
public static void SaveXml<T>(this T[] list, string path)
{
T[] xmldata = null;
xmldata = list.ToArray();
using (FileStream fs = new FileStream(path, FileMode.Create))
{
XmlSerializer xml = new XmlSerializer(typeof(T[]));
xml.Serialize(fs, xmldata);
}
}
/// <summary> List<T>オブジェクトをXmlにセーブするメソッド </summary>
public static void SaveXml<T>(this List<T> list, string path)
{
T[] xmldata = null;
xmldata = list.ToArray();
using (FileStream fs = new FileStream(path, FileMode.Create))
{
XmlSerializer xml = new XmlSerializer(typeof(T[]));
xml.Serialize(fs, xmldata);
}
}
}