あほxのまとめwiki XmlSerializerの改行の扱いについてによると
改行がCRLFのStringをXmlSerializer.Serializeでシリアライズして保存すると、ファイルには改行がCRLFのまま保存されるが、
デシリアライズする際に
ファイルをStreamReaderでXmlSerializer.Deserializeに渡すと改行がLFになる。
ファイルをXmlTextReaderでXmlSerializer.Deserializeに渡すと改行がCRLFになる。
ほぉ~そ~なのか!
シリアライズ
Dim hoge As New Hoge
Using writer As New System.Xml.XmlTextWriter(path, System.Text.Encoding.GetEncoding("UTF-8"))
Try
Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(Hoge))
serializer.Serialize(writer, hoge)
Finally
writer.Close()
End Try
End Using
デシリアライズ
Dim hoge As Hoge
Using reader As New System.Xml.XmlTextReader(path)
Try
Dim serializer As New System.Xml.Serialization.XmlSerializer(GetType(Hoge))
Dim obj As Object = serializer.Deserialize(reader)
hoge = CType(obj, Hoge)
Finally
reader.Close()
End Try
End Using
0 件のコメント:
コメントを投稿