XMLシリアライズできないケースに対応する。DataTableに対応する。

アトリビュートを付与しているインスタンスであればシリアライズできるが、インスタンスによっては失敗するケースがある。

■TableNameなしDataTable


System.InvalidOperationException はハンドルされませんでした。
Message="XML ドキュメントを生成中にエラーが発生しました。"
Message="DataTable をシリアル化できません。DataTable の名前が設定されていません。"

DataTableはシリアライズ可能なクラスだが、TableNameプロパティが空の場合はシリアライズに失敗する。

その場合は、TableNameプロパティに適当な値を設定する。


dt.TableName = "MASTER"


Dim dt As New DataTable

dt.Columns.Add("ID", GetType(String))

Dim dr As DataRow = dt.NewRow

dr.Item("ID") = 1

dt.Rows.Add(dr)

dt.TableName = "MASTER"

Dim serializer As New XmlSerializer(GetType(DataTable))

Dim sw As New StreamWriter("c:\xml.txt")

serializer.Serialize(sw, dt)

sw.Close()




















1