これで勝つる!

来年仕事で開発するソフトを正式にC#で書くことになりそうです。やったね!VC++のヘボさには疲れ果てていたところだ!
コレまでもこっそり小さいツールをC#でいくつか書いてきてますが、結構大掛かりなものになりそうなので今から楽しみですね。

ところで、今年約十人がかりでいじっていた、基盤を何枚かつんだ「箱」があるんですが、そいつの名前を今日(いまさら)正式に決めよう、という話になったので、さらっと今思いついたかのように私が自分で使ってた名前を提案して採用させましたよ。うへへ。計画通り。

C#::DictionaryをXMLSerializerでシリアライズしたいんですが?

XMLSerializerでは、2引数のAddを持つDictionary<>をシリアライズできないです。
http://msdn.microsoft.com/ja-jp/library/system.xml.serialization.xmlserializer(VS.80).aspx

でもIXMLSerializableを実装すればあらゆるクラスをXMLに落とせるので、わざわざそれを使ってシリアル化できるようにしたクラスを作成する必要があります。
このぐらい.NetFrameworkに入れといてくれよ〜と思うのですが、Dictionary<>とXMLSerializerではネームスペースどころかクラスライブラリからして別なのでまぁなんか微妙な葛藤があるんでしょうなぁ。

というわけで、XMLSerializerでシリアル化可能なDictionaryの実装サンプルを下に張っておきます。

続きを読む