を知らなくても辞書のキーと値のペアを取得します。私の質問は、実際にジェネリック型を知らなくても、このオブジェクトからキーと値のペアをどのように抽出できますか?私はKeyValuePair<object, object>[]
のようなものを取得したいと思います。私はまた、実行時にディクショナリが使用するジェネリック型も知っていることに注意してください(コンパイル時ではありません)。私は何らかの反射が必要だと思いますか?私は</p> <pre><code>instance.GetType().GetGenericTypeDefinition() == typeof(Dictionary<,>) </code></pre> <p>が真である<code>instance</code>するオブジェクトを持って、その型
フォローアップ:はSomeClass<>
にobject
を変換する(私が知っていればそれは当然の正しいタイプ、である)ので、それを使用する一般的なメカニズムは、クラスの実装はに影響されないことを考えると、あります一般的な議論のタイプ?迅速な解決のために
または非総称の「IDictionary」インターフェイス。 – SLaks
それは良い点です。私は特に 'Dictionary <,>'の答えを探していますが、一般的な引数を必要とするオブジェクトを動的にキャストして使用できる方法があるかどうかを知りたいと思います。 – nickolayratchev
IDictionaryの 'ToList'はKeyValuePairsのリストを返します:' var keyValuePairList = instance.ToList(); '。それは(あなたのフォローアップの前に)あなたの探しているものですか?または私は何かを逃していますか? –