4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
|
1 | |
Зачем нужны кастомные атрибуты в сборках25.06.2012, 23:13. Показов 3050. Ответов 5
Метки нет (Все метки)
В проекте используются подключаемые DLL. использую рефлексию и позднее связывание.
Изначально думал, что атрибуты позволяют получить инфу например о назначении сборки без поиска в ней всех типов, создания их экземпляра и прочего огорода. оказалось нет. что мешает мне просто реализовать в сборке метод getInfo который и будет сообщать мне нужную информацию о сборке, причем без всех этих усложнений с созданием атрибутов? возможно, я просто неверно понял назначение сабжа и в моем случае он не нужен. кто в теме поясните плиз.
0
|
25.06.2012, 23:13 | |
Ответы с готовыми решениями:
5
Что такое атрибуты и зачем они нужны? Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора? Кастомные атрибуты валидации, делающие проверку при компиляции Что такое атрибуты (dir) и зачем они нужны ? |
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
|
26.06.2012, 00:35 | 2 |
Аттрибуты нужны для создания самоописывающихся объектов. В шарпе аттрибут - это даже нечто большее чем просто метаданные.
Отдельный метод не поможет вам в самоописании класса или иного объекта. По своей сути настраиваемый аттрибут это класс унаследованный от System.Attribute. В этот класс вы можете внести любую описательную информацию которая привяжется к объекту. И при помощи отражения можно обратится к конкретному аттрибуту, не дергая целый метод.
1
|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
|
27.06.2012, 19:30 [ТС] | 3 |
ну с атрибутами тоже не все так просто. нужно создать свой класс, унаследовав его от System.Attribute. описать атрибут в сборке, которую будем подключать к приложению используя рефлексию. Далее в самом приложении нужно получить типы из сборки, создать экземпляр (инстанс) типа и только потом прочесть атрибут. Чем это проще создания в классе сборки полей с нужной инфой и получения их спец методом?
может быть (наверняка!)для других целей атрибуты мега кул, а для простого получения 3-4 строковых значений характеризующих конкретную сборку я преимуществ не вижу... и пока аргументов со стороны тоже , но спасибо, что изложили свое видение
0
|
Администратор
|
|
28.06.2012, 18:33 | 4 |
Неа
Просто воспользуйтесь методом GetCustomAttributes для типа или сборки или ещё чего угодно. Создавать экземпляр типа вам не нужно (но если вы имеет ввиду экземпляр класса Type, то их можно получить с помощью GetType() или GetTypes(), что тоже просто)
0
|
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
|
|
28.06.2012, 20:27 [ТС] | 5 |
можете привести пример, где атрибуты читаются сразу из сборки? без промежуточных операций?
суть моего поста : для получения элементарных сведений (строк) из dll (которая привязывается к предложению при помощи позднего связывания) можно использовать реализованный в ней же метод. чем это дольше/сложнее/хуже GetCustomAttributes я не понимаю. Атрибуты требуют доп реализации, объем кода сопоставим или больше.
0
|
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
|
|
28.06.2012, 23:45 | 6 |
Атрибуты помогают классифицировать сборки, типы, методы и свойства по их назначению при позднем связывании, особенно, если это связывание с чужими сборками.
Тема легче изучается не в момент, когда возникает вопрос "зачем", а в момент, когда возникает вопрос "как" ) Добавлено через 4 минуты Пример - толдько на словах. Через Reflection перебираются все типы, смотрятся их атрибуты. На самом деле на практике проверяется наличие требуемых атрибутов, а вытаскивание всех атрибутов практически не знаю зачем делать.
0
|
28.06.2012, 23:45 | |
28.06.2012, 23:45 | |
Помогаю со студенческими работами здесь
6
Кастомные атрибуты валидации в ASP.NET MVC Что такое атрибуты? Зачем они? [STAthread] - атрибут? Нужны атрибуты bootfiles_x86, скиньте пожалуйста Какие атрибуты вертексов нужны рендеру? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |