Вызов конструктора Атрибута
От: mashot  
Дата: 08.09.08 20:07
Оценка:
Мне необходимо добавлять к определенным методам в классе
дополнительную логику. И будет ли добавлена к методу
эта логика или нет зависит от того содержит ли метод
определенный Атрибут.
Вся проблема в том, что конструктор Атрибута ни как не
хочет вызываться при вызове метода содержащего данный
Атрибут. Пока что я могу наблюдать вызов конструктора
Атрибута только если устанавливаю этот Атрибут методу
Main(). Примерно вот так:
class Program
{
[SomeAttribute]
static void Main()
{
}
}
Ну SomeAttribute есть самый простой атрибут без какого-либо
мяса.
[AttributeUsage(AttributeTargets.All)]
class SomeAttribute:Attribute
{
public SomeAttribute()
{
}
}
Ну подскажите как заставить конструктор Атрибута вызываться
при его использовании в других методах, кроме пресловутого
Main(). Ведь в Main() как-то он вызывается.
Re: Вызов конструктора Атрибута
От: TK Лес кывт.рф
Дата: 08.09.08 23:50
Оценка: +1
Здравствуйте, mashot, Вы писали:

M>Ну подскажите как заставить конструктор Атрибута вызываться

M>при его использовании в других методах, кроме пресловутого
M>Main(). Ведь в Main() как-то он вызывается.

Значит, кто-то пытается получить для Main список атрибутов. Сами по себе атрибуты не "инициализируются". В любом случае, даже если и да то, сам атрибут не содержит информации о том, куда его применили.

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