Просмотр / получение атрибутов - PullRequest
3 голосов
/ 29 февраля 2012

Внутри класса у меня есть следующий фрагмент кода:

/// <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 Ответ

4 голосов
/ 29 февраля 2012

Вам нужно получить атрибуты из свойства, а не сам тип, например:

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

Или более полный (не забудьте импортировать System.Linq для Cast <> и ToArray () для работы):

XmlElementAttribute[] attribs = typeof(TheType)
                  .GetProperty("Items")
                  .GetCustomAttributes(typeof(XmlElementAttribute), false)
                  .Cast<XmlElementAttribute>()
                  .ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...