私が使用するカスタムシリアライザーで POCO オブジェクトを IDictionary/IEnumerable にキャストしています。故障もなく約1年使用しています。ただし、IDictionary/IEnumerable としてキャストしないだけのクラスがあります。以下はすべて false を返します。
(obj is IDictionary); // false
(obj is IList); // false
(obj is IEnumerable); // false
クラスは次のように定義されます: (名前が変更され、プロパティが増えました)
internal class MyClass {
public int ID;
public string Text;
}
何を与える?IDictionaries としてキャストできないオブジェクトは何ですか? プロパティをキー/値ストアとして列挙する方法が必要です。リフレクションはお勧めしません。