2014年3月26日水曜日

C# タグ[XmlSerializer 内部クラス 糞の塊]

被害者減らすために頑張ろう
XmlSerializerを使っていて

InvalidOperationExceptionはハンドルされませんでした
型 'XmlSerializerTest.EntryPoint.TargetClass' を反映中にエラーが発生しました。

こういうエラーが出た人の1%くらいに役立つ情報

InnerException
フィールド 'nestedclass' を反映中にエラーが発生しました。

というエラーが出てる人はおめでとう
XmlSerializerは

内部クラス もとい
ネストクラス もとい
クラス内クラス

をシリアライズできません

理由は以下のURL
http://stackoverflow.com/questions/10441940/net-xmlserializer-and-nested-classes-in-c-sharp

>Because a nested type is treated as a member of the declaring type, the nested type has access to all other members in the declaring type.

ネストクラスは宣言されたクラスのメンバにアクセスできるからダメ らしい
MS死ね


さてこれをどうやって解決するかというと、今のところ外に出すしか思いつきません
つまりTargetClass.NestedClassをTargetClassNestedClassにしてしまう訳であります
やったね 名前空間がいっぱい汚染されるよ!

0 件のコメント:

コメントを投稿