使用reflection来调用方法并获取字符串值

时间:2014-12-04 16:10:02

标签: c# reflection

我有一个包含以下属性的助手管理器:

public class ClientDetails
{
    public string ContactName { get; set; }
    public string ContactTelephone { get; set; }
    public string Add1 { get; set; }
    public string Add2 { get; set; }
    public string Town { get; set; }
    public string PostCode { get; set; }
}

我想在一个方法中“获取”所有这些属性。类似的东西:

protected string ContactDetails(string propertyName)
{
    var _clientDetails = ManagerHelper.ClientDetails();
    var temp = typeof (ClientDetails);

    var value = temp.GetProperty(propertyName);

    return value.GetValue(_clientDetails); //ERROR
}

我在某处读过你可以用反射来做这些事情,但我不熟悉反思。我尝试过使用上面的反射但它在_clientDetails上给我一个错误。

因此,如果我将此方法称为string address1 = ContactDetails("Add1"),则会返回ClientDetails().Add1中的值。

错误是“方法没有重载'GetValue需要1个参数”。

1 个答案:

答案 0 :(得分:0)

试试这个:

return (string)value.GetValue(_clientDetails, null);