Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
8 / 8 / 2
Регистрация: 27.10.2013
Сообщений: 206
1

Получить атрибут техникой отражения

18.11.2013, 13:00. Просмотров 943. Ответов 3
Метки нет (Все метки)


Имеется класс, в котором есть метод.
Для класса определен атрибут RemarkAttribute, для метода - атрибуты RemarkAttribute и Conditional.
Нужно считать их с помощью отражения (Reflection).

Как это сделать? (какой метод использовать).

C#
1
2
3
4
5
6
7
8
9
    [RemarkAttribute("Этот класс использует атрибут")] // Класс RemarkAttribute определен в Form2
    public class MyFavoriteClass
    {
        [RemarkAttribute("Этот метод использует атрибут"), Conditional("TRIAL")]
        public void MyFavoriteMethod()
        {
            MessageBox.Show("Hello, World!");
        }
    }
Класс RemarkAttribute:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 [AttributeUsage(AttributeTargets.All)] // определяем для каких элементов будет поддерживать атрибут, в нашем случае для всех элементов.
    public class RemarkAttribute : Attribute // класс, наследованный от Attribute
    {
       string print_remark; //Базовое поле для свойства remark
        public RemarkAttribute(string comment) // определяем конструктор, принимающий на вход строку.
        {
            print_remark = comment;
        }
        public string remark //с помощью метода get{} помещаем входную строку в базовое поле.
        {
            get
            {
                return print_remark;
            }
        }
    }
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2013, 13:00
Ответы с готовыми решениями:

Вывести список методов, имеющихся в DLL, техникой отражения
Здравствуйте. У меня встал большой вопрос. Нужно вывести список методов, имеющихся в DLL, техникой...

Получить значение поля с помощью рефлексии (отражения)
Каким образом с помощью рефлексии получить значение поля? Вроде как с помощью этих вот команд: ...

Получить полный путь к выделенному файлу, атрибут которого выделен в listbox
Добрый день! ВЫвожу на listbox атрибуты из xml-файлов. Затем нужно будет работать с каждым...

Получить атрибут href тега, если атрибут rel="canonical"
1) preg_match('#<link\s*rel\s*=\s*canonical\s*href\s*=\s*(.*?)\s*/?>#si',$uri, $canonmatch) 2)...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
3
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
18.11.2013, 13:34 2
C#
1
2
3
4
5
var result = typeof(Form1).GetCustomAttributes(false).Cast<RemarkAttribute>().ToList();
            if (result.Count != 0)
            {
                var attr = result[0];//Здесь ваш атрибут
            }
2
8 / 8 / 2
Регистрация: 27.10.2013
Сообщений: 206
18.11.2013, 16:52  [ТС] 3
Спасибо... А как получить атрибут для метода?
1
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
18.11.2013, 17:53 4
C#
1
2
3
4
5
6
7
8
9
var method = typeof(Form1).GetMethods().FirstOrDefault(x => x.Name == "MyFavoriteMethod");
if(method!=null)
{
            var result = method.GetCustomAttributes(false).Cast<RemarkAttribute>().ToList();
            if (result.Count != 0)
            {
                var attr = result[0]; //Здесь ваш атрибут
           }
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2013, 17:53

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Получить вектор отражения от плоскости
У меня есть вектор dir, заданный через x,y,z. Есть плоскость, которая описана тремя точками...

Получить атрибут тега
Всем доброе время суток. в php формируется таблица echo '&lt;table class=&quot;table table-hover...

Получить атрибут по атрибуту caption
Всем привет В общем name и id динамические и меняются после обновлении страницы. Но мне нужно...

Получить атрибут запроса после его выполнения
Привет) такая проблема, есть сервлет, который загружает на сервер картинку, выбранную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.