Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
coderisimo
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
#1

Зачем нужны кастомные атрибуты в сборках

25.06.2012, 23:13. Просмотров 1524. Ответов 5
Метки нет (Все метки)

В проекте используются подключаемые DLL. использую рефлексию и позднее связывание.
Изначально думал, что атрибуты позволяют получить инфу например о назначении сборки без
поиска в ней всех типов, создания их экземпляра и прочего огорода. оказалось нет.
что мешает мне просто реализовать в сборке метод getInfo который и будет сообщать мне нужную информацию о сборке, причем без всех этих усложнений с созданием атрибутов?

возможно, я просто неверно понял назначение сабжа и в моем случае он не нужен. кто в теме поясните плиз.

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 23:13
Ответы с готовыми решениями:

Что такое атрибуты и зачем они нужны?
Нужен человек, который может объяснить, что такое атрибуты и зачем они нужны,...

Что такое атрибуты и зачем они? Для чего нужны директивы препроцессора?
Короче,товарищи,задаю вопрос не первый раз,поэтому,если уже отвечали,то прошу...

Что такое атрибуты? Зачем они? [STAthread] - атрибут?
Что такое атрибуты? Зачем они? - атрибут? А,вот ещё - partial class - что...

Объясните понятным языком для чего нужны атрибуты сборки
Добрый день, Объясните понятным языком для чего нужны атрибуты сборки...

Зачем нужны интерфейсы?
Вроде знаю, как использовать, но не понимаю, зачем например мне юзать...

5
freeba
Неадекват
1229 / 1031 / 195
Регистрация: 02.04.2010
Сообщений: 2,366
Записей в блоге: 2
Завершенные тесты: 2
26.06.2012, 00:35 #2
Аттрибуты нужны для создания самоописывающихся объектов. В шарпе аттрибут - это даже нечто большее чем просто метаданные.

Цитата Сообщение от coderisimo Посмотреть сообщение
что мешает мне просто реализовать в сборке метод getInfo который и будет сообщать мне нужную информацию о сборке, причем без всех этих усложнений с созданием атрибутов?
Отдельный метод не поможет вам в самоописании класса или иного объекта. По своей сути настраиваемый аттрибут это класс унаследованный от System.Attribute. В этот класс вы можете внести любую описательную информацию которая привяжется к объекту. И при помощи отражения можно обратится к конкретному аттрибуту, не дергая целый метод.
1
coderisimo
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
27.06.2012, 19:30  [ТС] #3
ну с атрибутами тоже не все так просто. нужно создать свой класс, унаследовав его от System.Attribute. описать атрибут в сборке, которую будем подключать к приложению используя рефлексию. Далее в самом приложении нужно получить типы из сборки, создать экземпляр (инстанс) типа и только потом прочесть атрибут. Чем это проще создания в классе сборки полей с нужной инфой и получения их спец методом?

может быть (наверняка!)для других целей атрибуты мега кул, а для простого получения 3-4 строковых значений характеризующих конкретную сборку я преимуществ не вижу... и пока аргументов со стороны тоже ,

но спасибо, что изложили свое видение
0
tezaurismosis
Администратор
Эксперт .NET
8423 / 3790 / 723
Регистрация: 17.04.2012
Сообщений: 8,462
Записей в блоге: 14
28.06.2012, 18:33 #4
Цитата Сообщение от coderisimo Посмотреть сообщение
Далее в самом приложении нужно получить типы из сборки, создать экземпляр (инстанс) типа и только потом прочесть атрибут.
Неа
Просто воспользуйтесь методом GetCustomAttributes для типа или сборки или ещё чего угодно. Создавать экземпляр типа вам не нужно (но если вы имеет ввиду экземпляр класса Type, то их можно получить с помощью GetType() или GetTypes(), что тоже просто)
0
coderisimo
4 / 4 / 0
Регистрация: 28.05.2011
Сообщений: 84
28.06.2012, 20:27  [ТС] #5
можете привести пример, где атрибуты читаются сразу из сборки? без промежуточных операций?
суть моего поста : для получения элементарных сведений (строк) из dll (которая привязывается к предложению при помощи позднего связывания) можно использовать реализованный в ней же метод. чем это дольше/сложнее/хуже GetCustomAttributes я не понимаю. Атрибуты требуют доп реализации, объем кода сопоставим или больше.
0
ksk
612 / 480 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
28.06.2012, 23:45 #6
Атрибуты помогают классифицировать сборки, типы, методы и свойства по их назначению при позднем связывании, особенно, если это связывание с чужими сборками.

Тема легче изучается не в момент, когда возникает вопрос "зачем", а в момент, когда возникает вопрос "как" )

Добавлено через 4 минуты
Пример - толдько на словах.
Через Reflection перебираются все типы, смотрятся их атрибуты. На самом деле на практике проверяется наличие требуемых атрибутов, а вытаскивание всех атрибутов практически не знаю зачем делать.
0
28.06.2012, 23:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 23:45

Зачем нужны Интерфейсы
Здравствуйте. Вот такой у меня вопрос, касательно самой сути интерфейсов -...

Зачем нужны интерфейсы?
Доброе утро, можете пожалуйста объяснить зачем нужны интерфейсы. Читаю книгу...

Зачем нужны интерфейсы?
Ознакомился с соответствующей литературой, посмотрел исходники, однако так и не...


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

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

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