インスタンス丸ごとシリアライズ・デシリアライズを行うため、
以下のようなプロパティを作成して実行した。
public List<KeyAndValue<string, string>> Parameters
{
set { Dictionary = ListToDictionary(value); }
get { return DictionaryToList(value); }
}
シリアライズは問題なく行われたものの、
デシリアライズ後のDictionaryは空のまま。
シリアライズ時はget、デシリアライズ時はsetを行うのではという想定で、
setアクセサにブレークを張るものの引っかからない。
試しにgetアクセサにてブレークを張ったところ、
予想外に引っかかった。
なぜ?と言うことで調べて見たところ、
以下の記事が見つかった。
http://goo.gl/W94Md0
XmlSerializer
does not call the setter for a collection.
Instead is calls the getter, and then adds items to the collection returned.
setアクセサを呼ばずに、getアクセサで取得したコレクションに対してアイテムを追加すると。原因判明。
0 件のコメント:
コメントを投稿