如何遍历.net对象的所有setter

时间:2014-04-28 15:31:51

标签: c# properties setter

我正在使用来自第三方库的对象(意味着我无法修改其结构)。该对象有12个字符串setter属性,名为HI01,HI02,... HI12:

public string HI01 {get; set;}
public string HI02 {get; set;}
...
public string HI12 {get; set;}

如何循环使用这些并分配值,最好不使用反射?有没有办法将属性的引用放入集合并迭代它?

2 个答案:

答案 0 :(得分:2)

假设您拥有object o第三方图书馆:

foreach (PropertyInfo pi in o.GetType().GetProperties())
{
    pi.SetValue(o, "Your Value");
}

答案 1 :(得分:1)

您可以获取此类属性,无需获取 setter 方法:

var properties = typeof(yourType)
                .GetProperties()
                .Where(x => x.Name.StartsWith("HI"));

然后使用SetValue方法将它们分配给值。