Поиск типа по его атрибуту - C#

Узнай цену своей работы

Формулировка задачи:

Есть класс:
public class MessageBoard
{
    [MessageBoardEnumLabel]
    public enum MessageType
    {
        ConnectedToServer,
        DisconnectedFromServer,
        // ...
    }
 
    // ...
}
Как видно, у вложенного типа MessageType есть кастомный атрибут MessageBoardEnumLabel (наследуется от System.Attribute). Суть: в совершенно другом классе нужно получить тип этого перечисления, зная только атрибут. Пробовал использовать рефлексию, но гугла/мсдна/рук оказалось недостаточно. Очень рассчитываю на вашу помощь, заранее спасибо.

Решение задачи: «Поиск типа по его атрибуту»

textual
Листинг программы
            var assembly = Assembly.GetExecutingAssembly();
            var types = assembly.GetTypes();
 
            var enumType =
                types.FirstOrDefault(
                    t => t.CustomAttributes.Any(a => a.AttributeType == typeof (MessageBoardEnumLabelAttribute)));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы