【发布时间】:2011-07-19 05:51:17
【问题描述】:
我正在尝试编写一个接受以下 3 个参数的方法:
一个对象(用户定义的类型会有所不同)
表示该对象的属性名称的字符串
一个字符串值,在赋值之前必须将其从字符串转换为属性的数据类型。
方法签名将如下所示:
public void UpdateProperty(Object obj, string propertyName, string value)
我发现了如何使用反射检索属性值,代码如下:
PropertyInfo[] properties = target.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in properties)
{
if (string.Compare(prop.Name, propertyName, true) == 0)
{
return prop.GetValue(target, null).ToString();
}
}
问题是我不知道如何设置属性值。此外,该值是以字符串形式出现的,因此我必须根据属性的数据类型检查值的数据类型,然后才能对其进行强制转换和分配。
任何帮助将不胜感激。
【问题讨论】:
标签: c# reflection