如何使用此方法獲取屬性類的值?變量類型參數
public static int SQLInsert<TEntity>(TEntity obj) where TEntity : class
{
foreach (var item in obj.GetType().GetProperties())
{
//item.GetValue(?,null);
}
return 1;
}
如何使用此方法獲取屬性類的值?變量類型參數
public static int SQLInsert<TEntity>(TEntity obj) where TEntity : class
{
foreach (var item in obj.GetType().GetProperties())
{
//item.GetValue(?,null);
}
return 1;
}
item.GetValue(obj, null);
,將工作約TEntity喬恩
item
將是一個PropertyInfo
。你會用:
object value = item.GetValue(obj, null);
請注意,你幾乎忽略了TEntity
類型參數。您可能需要使用:
foreach (var property in typeof(TEntity).GetProperties())
這樣,如果有人呼叫
SQLInsert<Customer>(customer)
和customer
實際上指Customer
具有額外屬性的子類的值,只有Customer
屬性會用過的。
這樣,而不是索引,您可以使用空值:
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;
}
+1非常好的問題,這些類型的細微之處都容易漏診。 – 2011-03-16 09:08:47