使用属性表达式获取属性名 C# .net


/// 
/// 根据属性获取对应的属性名称
/// 
/// 对象类型
/// 对象数据的类型
/// 对象
/// 需要获取的属性
/// 属性名
public static string GetPropertyName(this T t, Expression> expr)
{
    string propertyName = string.Empty;    //返回的属性名
    //对象是不是一元运算符
    if (expr.Body is UnaryExpression)
    {
         propertyName = ((MemberExpression)((UnaryExpression)expr.Body).Operand).Member.Name;
    }
    //对象是不是访问的字段或属性
    else if (expr.Body is MemberExpression)
    {
        propertyName = ((MemberExpression)expr.Body).Member.Name;
    }
    //对象是不是参数表达式
    else if (expr.Body is ParameterExpression)
    {
        propertyName = ((ParameterExpression)expr.Body).Type.Name;
    }
    return propertyName;
}




示例代码

//eee为一个类型       
 var name=    GetPropertyName(p => p.ExtendedArray);








你可能感兴趣的:(使用属性表达式获取属性名 C# .net)