我有一个包含以下属性的助手管理器:
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个参数”。
答案 0 :(得分:0)
试试这个:
return (string)value.GetValue(_clientDetails, null);