Silverlight プロジェクト (SL4) では、リスト ( IList<AnotherModel>
) を含む可能性のあるモデルを使用しています。グッド プラクティスとルールCA2227:CollectionPropertiesShouldBeReadOnly
によると、IList
プロパティにはパブリック セッターがありません。動作している DataContractSerializer を使用してモデルをシリアル化します。しかし、デシリアライズしようとすると、DataContractSerializer のReadObject(Stream)
メソッドによって SecurityException がスローされ、パブリック セッターがないためにターゲット プロパティ (プロパティを指しているIList
) を設定できないと不平を言います。
は封印されており、拡張可能でも柔軟でもないため、メソッドまたはコレクション項目を転送する他の方法でforeach-loop を使用しDataContractSerializer
て逆シリアル化できるような追加のルールを追加する機会は現在ありません。ILists
Add()
また、(Reflector を使用して) ソースを掘り下げてDataContractSerializer
小さなフォークを作成しようとしましたが、非常に深く掘り下げる必要があり、シリアル化クラス全体を複製することは実行可能な解決策ではないようです。
を使用してパブリック セッターを使用せずにリストをシリアル化する別の機会はありDataContractSerializer
ますか?
あなたのアイデアを事前にどうもありがとうございました!
更新
XmlSerializer を使用して解決しました。
トーマス