お世話になっております。
標題の通り、VB.NETにおける「xmlファイル」シリアライズにてご教示いただけませんでしょうか。
別クラスから呼び出された、シリアライズメソッドの処理において
xmlファイルの値が空白だったり書式がおかしかった際に、
下記ソースコードの「Dim obj As T = DirectCast(serializer.Deserialize(sr), T)」部分でエラーが出ます。
エラー内容:
例外がスローされました: 'System.InvalidOperationException' (System.Xml.dll の中)
追加情報:XML ドキュメント (11,3) でエラーが発生しました。
型?のエラーなのかとは思うのですが、
このエラーをtry~CatchでうまくCatchできません。
お手数ですが、Catchがうまくいく方法、もしくは別の方法がありましたら、ご教示願います。
開発環境は以下となります。
・Visual Studio 2015
・.NET Framework 4.7
VB.NET
1該当クラス 2 3Public Function xmlRead(Of T)(ByVal p_xmlFilePath As String) As Object 4 Try 5 'XmlSerializerオブジェクトを作成 6 Dim serializer As New System.Xml.Serialization.XmlSerializer( 7 GetType(T)) 8 9 '読み込むファイルを開く 10 11 If System.IO.File.Exists(p_xmlFilePath) Then 12 Dim sr As New System.IO.StreamReader( 13 p_xmlFilePath, New System.Text.UTF8Encoding(False)) 14 15 16 'XMLファイルから読み込み、逆シリアル化する 17 Dim obj As T = DirectCast(serializer.Deserialize(sr), T) 18 19 'ファイルを閉じる 20 sr.Close() 21 Return obj 22 Else 23 '読み込むファイルがない場合の、エラー処理 24 Throw New System.IO.FileNotFoundException 25 End If 26 27 Catch ex As Exception 28 Throw New Exception 29 End Try 30 31 32別クラス 33 34Try 35 g_XmlObj = util.xmlRead(Of Property)(XmlFileName) 36 37 Catch ex As Exception 38 Me.Close() 39 40 End Try
回答1件
あなたの回答
tips
プレビュー