public enum Animal
{
[Description("King of jungle")]
Lion= 1,
[Description("Tallest there")]
Giraffe = 2
}
Пусть у меня есть FieldInfo
, я могу это сделать двумя способами:Почему MemberInfo.GetCustomAttributes (Тип) определен для возврата массива атрибутов?
//static one on 'Attribute' class
Attribute attribute = Attribute.GetCustomAttribute(field,
typeof(DescriptionAttribute),
false);
Это нормально.
Но один ниже возвращает []
, а не Attribute
?
//instance one on 'MemberInfo` class
var attributes = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
Этот вопрос не совсем о выборе дизайна MS. Мой вопрос в том, должен ли я когда-либо беспокоиться о возврате нескольких элементов для определенного типа атрибута field.GetCustomAttributes
? В каких случаях это произойдет?
никогда не возможно. Я думаю, что я должен справиться с этим при написании некоторых вспомогательных функций отражения.
Как насчет нескольких атрибутов, полученных из одного и того же базового типа? Можно было бы запросить все это? Например, XmlArrayItemAttribute. – Alex
@Alex Я провел некоторое тестирование таким образом, и у меня все еще есть только один атрибут в массиве. Не могли бы вы дать ему ответ на примере? – nawfal