我有一个通用的方法:
public static T GetSetting<T>(string Key){
....
}
从数据库返回设置值。 现在我正在尝试使用设置自动填充类:
public static T GetAllSettings<T>(this T m)
{
FieldInfo[] fields = typeof(T).GetFields(BindingFlags.Public);
foreach(FieldInfo f in fields)
f.SetValue(m, User.GetSetting<f.FieldType>(f.Name), null);
// ~ <=Error in here
}
但是我收到了错误:
'f'是一个变量,但用作类型
我实际上是f
FieldType而不是f
本身
答案 0 :(得分:1)
由于SetValue()
已经预期Object
作为参数,因此您只需将object
作为SetMethod()
的通用参数传递:
f.SetValue(m, User.GetSetting<object>(f.Name), null);