输入变量参数

时间:2011-03-16 07:33:32

标签: c# asp.net c#-4.0

如何使用此方法获取属性类的值?

public static int SQLInsert<TEntity>(TEntity obj) where TEntity : class
{
    foreach (var item in obj.GetType().GetProperties())
    {
        //item.GetValue(?,null);
    }
    return 1;
}

3 个答案:

答案 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;
}