如何使用此方法获取属性类的值?
public static int SQLInsert<TEntity>(TEntity obj) where TEntity : class
{
foreach (var item in obj.GetType().GetProperties())
{
//item.GetValue(?,null);
}
return 1;
}
答案 0 :(得分:5)
item
将是PropertyInfo
。你会用:
object value = item.GetValue(obj, null);
请注意,您现在几乎忽略了TEntity
类型参数。您可能想要使用:
foreach (var property in typeof(TEntity).GetProperties())
如果有人打电话
SQLInsert<Customer>(customer)
并且customer
的值实际上是<{1}}的子类,具有额外的属性,只会使用Customer
的属性。
答案 1 :(得分:1)
item.GetValue(obj, null);
会起作用
答案 2 :(得分:0)
像这样,您可以使用空值而不是索引器:
public static int SQLInsert<TEntity>(TEntity obj) where TEntity : class
{
var indexer = new object[0];
foreach (var item in obj.GetType().GetProperties())
{
item.GetValue(obj,indexer);
}
return 1;
}