1

KeyValuePairインスタンスを作成し、リフレクションを使用してキーと値を動的に設定する方法を探しています。

これはの一部です

 foreach(var prop in this.GetType().GetProperties()) 

プロパティを反復処理し、いくつかの条件に従ってそれらを回復しようとするループ。KeyValueペアは複雑なようです。

私はこれらの2つのタイプ定義を持っています

var keyType = prop.PropertyType.GetGenericArguments()[0]; 
var valueType = prop.PropertyType.GetGenericArguments()[1];

ここで、KeyValuePairのインスタンスを作成できます。

var keyValuePair = Activator.CreateInstance(prop.PropertyType); 

ただし、キーと値は外部からの読み取り専用プロパティであり、コンストラクターによってのみ設定できます。

何か案は ??

4

1 に答える 1

3

Key と Value の値を指定してコンストラクターを呼び出します。

var keyValuePair = Activator.CreateInstance(prop.PropertyType, new [] {key, val});
于 2012-09-11T09:04:37.820 に答える