Ответ 1
Атрибуты (с некоторыми очень немногими исключениями, такими как [PrincipalPermission]
, которые определяются самой средой выполнения) метаданные только; так что не вызывает дополнительный магический вызов. Исключением является использование таких инструментов, как PostSharp, которые во время сборки обнаруживают такие атрибуты и переплетаются в дополнительном коде.
Во всех остальных случаях вам нужно будет проверить этот атрибут самостоятельно с помощью отражения и написать код для вызова дополнительных методов из атрибутов. Это то, что делает ASP.NET MVC; он идентифицирует ожидаемое семейство атрибутов и вызывает методы базового класса, чтобы заставить ваши фильтры срабатывать.
Если вы пишете плагин, это может иметь смысл. Если это для инструментального инструментария - это не будет работать, если вы не добавите дополнительный код самостоятельно.
Что может быть проще - написать тип IDisposable
, который записывает истекшее время, когда оно расположено; то вы можете сделать:
using(new MyTimer("My label")) {
//... Your method
}
Возможно, небольшое злоупотребление using
, но оно должно работать.