あほxのまとめwiki
.NET
最終更新:
www1
-
view
XmlSerializerの改行の扱いについて
http://yutori7.2ch.net/test/read.cgi/news4vip/1275478577/122
改行がCRLFのStringをXmlSerializer.Serializeでシリアライズして保存すると、ファイルには改行がCRLFのまま保存されるが、読みだす際にStreamReaderを使うかXmlTextReaderを使うかによりXmlSerializer.Deserializeを通した後の改行がLFになるかCRLFになるかが変化するらしい。
ファイルをStreamReaderでXmlSerializer.Deserializeに渡すと改行がLFになる。
ファイルをXmlTextReaderでXmlSerializer.Deserializeに渡すと改行がCRLFになる。
改行がCRLFのStringをXmlSerializer.Serializeでシリアライズして保存すると、ファイルには改行がCRLFのまま保存されるが、読みだす際にStreamReaderを使うかXmlTextReaderを使うかによりXmlSerializer.Deserializeを通した後の改行がLFになるかCRLFになるかが変化するらしい。
ファイルをStreamReaderでXmlSerializer.Deserializeに渡すと改行がLFになる。
ファイルをXmlTextReaderでXmlSerializer.Deserializeに渡すと改行がCRLFになる。
- LF
using(System.IO.StreamReader stream = new System.IO.StreamReader(filename)) { Hoge data = (Hoge)( new System.Xml.Serialization.XmlSerializer(typeof(Hoge)) .Deserialize(stream) ); }
- CRLF
using(System.Xml.XmlTextReader stream = new System.Xml.XmlTextReader(filename)) { Hoge data = (Hoge)( new System.Xml.Serialization.XmlSerializer(typeof(Hoge)) .Deserialize(stream) ); }
テキストボックスにデシリアライズした文字列入れたら改行が…、という場合はSystem.Xml.XmlTextReaderの方を使ってやればよいようだ。