C# - よく使うクラス - System.Xml - XmlReader

クラウディア 
1. 概要
2. Create

1. 概要

 「Writer」あれば、「Reader」ありなのですが。  前ページの「XmlTextWriter」に対するものとは、ちょっと違う話になります。  参考サイトによれば、「XML データへの高速で非キャッシュの前方向アクセスを提供するリーダーを表します」とのことです。  本ページは、下記にサイトを参考にさせていただきました。
XmlReader クラス (System.Xml)

2. Create

 参考サイトによれば、「新しい XmlReader のインスタンスを作成します」とのことです。  実は、細かい部分は(「using」や、例外等)省略しますが。

public void ToXmlFile(string name, Type objtype, object obj)
{
	XmlWriterSettings settings = new XmlWriterSettings();
	settings.Indent = true;
	settings.Encoding = new System.Text.UTF8Encoding(false);

	using (XmlWriter xw = XmlWriter.Create(path, settings))
	{
		DataContractSerializer serializer = new DataContractSerializer(objtype);
		serializer.WriteObject(xw, obj);
	}
}
 とまぁ、「DataContractSerializer」を使って出力したファイルを読むときに使うのですが、以下の感じで。

public object read(string name, Type objtype)
{
	using (System.IO.StreamReader reader = new System.IO.StreamReader(name))
	{
		using (XmlReader xr = XmlReader.Create(reader))
		{
			DataContractSerializer serializer = new DataContractSerializer(objtype);
			return serializer.ReadObject(xr);
		}
	}
}
 でまぁ、読めました。  なんか、書き込みと違うでしょ、今んとこ、こうしなきゃ読めなかったので。  まだ、解説はできない。