通用方法获取属性类型

时间:2015-01-30 19:18:20

标签: c# generics generic-method

我有方法:

static T RandomObject<T> (...) {
var tmp = Activator.CreateInstance<T>();
...
   foreach (PropertyInfo info in tmp.GetType().GetProperties()){
   ...
   }
}

如果T类具有对象属性,我也想随机生成它们,所以我所做的是:

var t = info.PropertyType;
obj = RandomObject<t>(...);

然后我得到:

  

找不到类型或命名空间名称t(您是否缺少using指令或程序集引用?)

有什么想法解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试:

obj = GetType().GetMethod("RandomObject", BindingFlags.Static | BindingFlags.NonPublic).MakeGenericMethod(t).Invoke(null, ...);