我正在编写一些代码用于类构造函数,该函数循环遍历类的所有属性并调用一个通用静态方法,该方法使用来自外部API的数据填充我的类。因此,我有一个示例类:
public class MyClass{
public string Property1 { get; set; }
public int Property2 { get; set; }
public bool Property3 { get; set; }
public static T DoStuff<T>(string name){
// get the data for the property from the external API
// or if there's a problem return 'default(T)'
}
}
现在在我的构造函数中,我希望有这样的东西:
public MyClass(){
var properties = this.GetType().GetProperties();
foreach(PropertyInfo p in properties){
p.SetValue(this, DoStuff(p.Name), new object[0]);
}
}
因为我没有提供泛型类型,所以上述构造函数将会抛出错误。
那么如何传入属性的类型呢?