使用值反射获取所有属性

时间:2011-01-19 15:28:48

标签: c# .net reflection

我编写了自定义属性属性并将其设置在我班级的几个属性中。现在我想在运行时只获取具有此属性的属性,能够获取属性的值以及属性字段的值。你能帮我完成这项任务吗? 谢谢你的帮助

3 个答案:

答案 0 :(得分:14)

以下是一个例子:

void Main()
{
    var myC = new C { Abc = "Hello!" };
    var t = typeof(C);
    foreach (var prop in t.GetProperties())
    {
        var attr = prop.GetCustomAttributes(typeof(StringLengthAttribute), true).Cast<StringLengthAttribute>().FirstOrDefault();
        if (attr != null)
        {
            var attrValue = attr.MaximumLength; // 100
            var propertyValue = prop.GetValue(myC, null); // "Hello!"
        }
    }
}
class C
{
    [StringLength(100)]
    public string Abc {get;set;}
}

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以使用PropertyInfo.Attributes