#c# #.net #attributes
#c# #.net #атрибуты
Вопрос:
В C # есть Attribute
вызываемый DataSourceAttribute
. Его нужно объявлять в каждом Методе снова и снова. Возможно ли объявить его один раз на уровне класса, чтобы мне не нужно было повторяться. Если да, то каким образом?
При тестировании блоков, управляемых данными, источник данных должен быть указан с помощью этого атрибута: [DataSource (...),...]
. Существует около 10-15 таких методов, и я не хочу объявлять атрибут для каждого метода. Я бы хотел объявить его один раз, и чтобы все методы наследовали его от использования на уровне класса.
Комментарии:
1. пожалуйста, проясните свой вопрос
2. «Применить атрибут с помощью AttributeTargets = Method ко всем методам в классе» может ли any1 объяснить это??
3. Я не думаю, что это возможно.
Ответ №1:
Взгляните на запоздалую мысль. Это платформа, которая применяет пользовательские фрагменты кода, включая свойства, методы, атрибуты, к вашему решению после компиляции.
Ответ №2:
Возможно, вам удастся создать пользовательский атрибут класса, который применяет атрибут метода ко всем методам в классе.
Вот MSDN для пользовательских атрибутов. http://msdn.microsoft.com/en-us/library/sw480ze8 (v= VS.100).aspx
Комментарии:
1. DataSourceAttribute не может быть унаследован, поэтому я не думаю, что атрибут пользовательского класса возможен..
2. Вы не захотите наследовать от DataSourceAttribute, вы захотите создать новый атрибут класса, который применяет DataSourceAttribute ко всем методам в классе.
3. не могли бы вы, пожалуйста, объяснить на примере?
4. как мне явно добавить атрибут к методу из другого метода .. например, у меня есть метод A и другой метод B .. здесь B управляется данными.. итак, как мне добавить атрибут «Источник данных» к методу B..
5. Я создал атрибут уровня класса, который может создавать атрибут источника данных для метода. Затем у меня есть базовый класс, который тестирует класс и наследует от него, который будет перебирать все методы класса и создавать dynamicmethod для каждого класса. Теперь проблема заключается в необходимости разбора IL, сгенерированного из тела каждого метода. Даже если это возможно (я уверен, что это так, просто потребовалось бы много времени, чтобы начать работать ..), добавление атрибута к динамическому методу мне непонятно. Я думаю, что на этом этапе просто проще добавить источник данных к каждому методу. Извините.