Как добавить атрибут к типу?
От: Dufrenite Дания  
Дата: 08.09.07 06:41
Оценка:
Собственно интересует сабж. И ещё вопрос: как проверить наличие атрибута?
Смотрел исходники макросов, примеров не нашел.
Re: Как добавить атрибут к типу?
От: Vermicious Knid  
Дата: 08.09.07 15:33
Оценка: 3 (1)
Здравствуйте, Dufrenite, Вы писали:

D>Смотрел исходники макросов, примеров не нашел.

Метод GetModifiers у TypeInfo/TypeBuilder и других реализаций IMember. Возвращает инстанс класса Modifiers, его реализацию смотреть в ncc/parsing/ast.n. В исходниках макросов это точно используется, поищи получше.

D>Собственно интересует сабж.

D>И ещё вопрос: как проверить наличие атрибута?
Методы класса Nemerle.Compiler.Modifiers:
    public AddCustomAttribute (expr : Parsetree.PExpr) : void
    public FindAttributeWithArgs (looking_for : TypeInfo, env : GlobalEnv) : option [PT.PExpr * list [PT.PExpr]]
    public AttributeTypes(env : GlobalEnv) : list[TypeInfo]
    public FindAttribute (looking_for : TypeInfo, env : GlobalEnv) : option [PT.PExpr]
Re[2]: Как добавить атрибут к типу?
От: Dufrenite Дания  
Дата: 08.09.07 19:20
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

VK>Метод GetModifiers у TypeInfo/TypeBuilder и других реализаций IMember. Возвращает инстанс класса Modifiers, его реализацию смотреть в ncc/parsing/ast.n. В исходниках макросов это точно используется, поищи получше.


Огромное спасибо! Даже пример есть поиска атрибута:

     def add_attr (m) {
       unless (m.GetCustomAttributes ().Exists (
         _ is <[ Nemerle.Internal.Extension () ]>))
         m.AddCustomAttribute (<[ Nemerle.Internal.Extension () ]>)
     }


Порадовало применение оператора is, получается, что это вроде как сопоставление с образцом в миниатюре .
Re[3]: Как добавить атрибут к типу?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.09.07 13:27
Оценка:
Здравствуйте, Dufrenite, Вы писали:

D>Огромное спасибо!


Спасибо, тем более огромное, лучше выражать в виде оценки (3 в данном случае).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Как добавить атрибут к типу?
От: Dufrenite Дания  
Дата: 15.09.07 09:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Спасибо, тем более огромное, лучше выражать в виде оценки (3 в данном случае).


Без проблем. Правила форума надо соблюдать
Re[5]: Как добавить атрибут к типу?
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.09.07 11:02
Оценка:
Здравствуйте, Dufrenite, Вы писали:

D>Без проблем. Правила форума надо соблюдать


Это не правило, а полезная фича. При этом и форум незначащими сообщениями не захламляется, и отвечавшему вдвойне приятно, так как его рейтинг поднимается.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.