查看/检索属性

时间:2012-02-29 14:55:54

标签: c# reflection

在课堂上,我有以下代码:

/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Errors", typeof(ErrorsType))]
[System.Xml.Serialization.XmlElementAttribute("Success", typeof(SuccessType))]
[System.Xml.Serialization.XmlElementAttribute("Warnings", typeof(WarningsType))]
public object[] Items {
    get {
        return this.itemsField;
    }
    set {
        this.itemsField = value;
    }
}

只使用反射,是否可以检索这些属性? 我在相应的GetCustomAttributes()上看到了{Type,但没有太多的快乐。

1 个答案:

答案 0 :(得分:4)

您需要从属性中检索属性,而不是类型本身,如下所示:

typeof(MyClass).GetProperty("Items").GetCustomAttributes(typeof(XmlElementAttribute), false);

或者更完整(记得导入Cast&lt;&gt;和ToArray()的System.Linq工作):

XmlElementAttribute[] attribs = typeof(TheType)
                  .GetProperty("Items")
                  .GetCustomAttributes(typeof(XmlElementAttribute), false)
                  .Cast<XmlElementAttribute>()
                  .ToArray();