2009/04/16

[XML][C#]XMLSerializerでSystem.IO.FileNotFoundException

そうとうハマった。
ちょっと設定をXMLでローカルに保存したかっただけ。だけ、なのに。このように「目的から外れる本質的でない処理」に時間を取られるとかなり萎える。
ファイルまたはアセンブリ名 hoge.dll、またはその依存関係の 1 つが見つかりませんでした。
hogeは毎回変わる。
Serializeしようとしてるクラスがinner classでprivateに指定していたというのが原因だった様子。
つまりprivateで宣言していたinner classをpublicに変更したら解決(?)。

他にも「publicなデフォルトコンストラクタが必要」ってのにも振り回された。
以前もハマった気がする。こんなだと、シリアライズ/デシリアライズ嫌いになる。
ハマったことはちゃんとメモっとかないと損するなー。


  • 追記
    • 無事シリアライズできたと思ったらできてなかった・・・。デシリアライズしたときにプロパティの値が常にnullになるのでなぜかと思えばプロパティはsetもできないとダメらしい。
    • Abstractクラスのフィールドのreadonly修飾子取って、プロパティはoverrideじゃなくてnew付けてさ・・・。もう本末転倒というかなんというか。カプセル化も何もあったもんじゃなくね?

絶対現場主義Visual C#実践講座―開発の現場から生まれた実践テクニック&TIPS集C#クックブック 第3版

    0 件のコメント:

    コメントを投稿