現在、VB.NETでXMLファイルを保存・復元をするプログラムを
作成しています。
しかし、復元する際にエラーが出てしまいます。
どなたか回避策をご教授頂けないでしょうか?
[エラーの出る部分]
'XMLファイルから読み込み、逆シリアル化する
Dim cls As EnvSetClass = _
CType(serializer.Deserialize(fs), EnvSetClass)
[エラーの内容]
'System.InvalidOperationException' のハンドルされていない例外が system.xml.dll で発生しました。
追加情報 : XML ドキュメント (2,2) でエラーが発生しました。
になります。
よろしくお願いします。
シリアル化対応クラスの定義も無ければ、
シリアライズされたXMLの内容も書かれて無いですね。
この状態で、デシリアライズ部のコードだけ見せられても、
回答できないです。(こっちで試せるわけでもないので)
とりあえず、エラーメッセージで検索してみたら、
こんな記事が見つかりましたけど、該当する内容かどうかは…?http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml11/easyxml11_01.html
> Dentalさん
ご指摘、ありがとうございます。
もっと勉強し、次回からは気を付けたいと思います。
> シリアル化対応クラスの定義も無ければ、
> シリアライズされたXMLの内容も書かれて無いですね。
---<シリアル化>-----------------------------------
'XmlSerializerオブジェクトを作成
'書き込むオブジェクトの型を指定する
Dim serializer As _
New System.Xml.Serialization.XmlSerializer( _
GetType(EnvSetClass))
'ファイルを開く
Dim fs As New System.IO.FileStream( _
fileName, System.IO.FileMode.Create)
'シリアル化し、XMLファイルに保存する
serializer.Serialize(fs, cls)
'閉じる
fs.Close()
-----------------------------------------------------
---<XMLの内容>-----------------------------------
<?xml version="1.0" ?>
- <EnvSetClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ClickScaleTrackBarValue>2</ClickScaleTrackBarValue>
<MWInvalid>false</MWInvalid>
<MWSmall>false</MWSmall>
<MWTrackBarValue_Scale>2</MWTrackBarValue_Scale>
<CSTrackBarValue_Speed>10</CSTrackBarValue_Speed>
<CSTrackBarValue_Interval>1</CSTrackBarValue_Interval>
<MWAutoScroll>false</MWAutoScroll>
<MWTrackBarValue_Speed>10</MWTrackBarValue_Speed>
<MWTrackBarValue_Interval>1</MWTrackBarValue_Interval>
<ScrollDisply_None>true</ScrollDisply_None>
<ScrollDisply_Always>false</ScrollDisply_Always>
</EnvSetClass>
-----------------------------------------------------
になります。
何か、回避策が分かればお教え願いたいと思います。
よろしくお願いします。
原因が分かりました。
申し訳ありません。
私の単純ミスでした。
ファイルの保存先パスが間違っておりました。
お騒がせ致しました。
ツイート | ![]() |