監査ログ (誰が、いつ、どのメンバーを変更したか) のために、データ構造の「詳細な比較」を行っています。これにはリフレクションを使用し、構造に再帰してそれらを比較しています。辞書を含むもので問題が発生しました。
によってメンバーが辞書であることを検出できますtypeof(IDictionary).IsAssignableFrom(memberType)
。私の計画は、両方のオブジェクトに存在するキーを収集し、それらの再帰を続行することです。ただし、LINQ によって拡張されていない ですIDictionary.Keys
。ICollection
キーのタイプがわからないのですが、どうすればこれを達成できますか?
この方法は最適ではないかもしれません (私は Generics/Reflection コンボの経験がありません)、別の方法でこれを行う必要がありますか?