1

我正在寻找创建 KeyValuePair 实例并使用反射动态设置键和值的方法。

这是一部分

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

循环遍历属性并尝试根据某些条件恢复它们。KeyValue Pair 似乎很复杂。

我有这两种类型定义

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 回答