使用动态类型参数创建KeyValuePair实例

时间:2012-09-11 08:46:48

标签: c# .net serialization reflection

我正在寻找创建KeyValuePair实例并设置key& amp;使用反射动态赋值。

这是

的一部分
 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); 

但是键和值是外部的只读属性,只能由构造函数设置。

任何想法?

1 个答案:

答案 0 :(得分:3)

使用Key和Value的值调用构造函数:

var keyValuePair = Activator.CreateInstance(prop.PropertyType, new [] {key, val});