按名称获取属性以在Expression中使用

时间:2013-09-05 10:24:29

标签: c# reflection runtime

我的类型Employee的公共属性为BaseInfo类型,名为PositionDepartment

我该如何正确编写此方法?

public BaseInfo GetPropertyByName(Employee employee, string propertyName)

1 个答案:

答案 0 :(得分:1)

typeof(Employee).GetProperty(propertyName)获取PropertyInfo对象。

要获取该特定实例的属性值,请使用:

public BaseInfo GetPropertyByName(Employee employee, string propertyName)
{
    var propInfo = typeof(Employee).GetProperty(propertyName);
    return propInfo.GetValue(employee) as BaseInfo;
}

但是,如果您请求的属性不是BaseInfo,则返回null。