Я использую PostSharp, и я хотел бы подавить (или изменить) существующий глобальный атрибут для одного метода в классе.
В приведенном ниже примере я хочу класс "thisIsLogged () "для регистрации, а класс" thisIsNotLogged () "не для регистрации.
Однако, это не работает: атрибут" [LogThis (false)] "просто добавляет в существующий атрибут уровня класса, и ведение журнала происходит в любом случае.Есть идеи?
[LogThis(true)] // uses PostSharp + SmartInspect to switch on logging for the entire class
class doSomething
{
void thisIsLogged(int x)
{
// entry/exit from this class is automatically logged
}
[LogThis(false)] // aim: suppress logging for this method, if [LogThis(true)] is switched on for the entire class (however, this doesn't work as attributes are additive)
void thisIsNotLogged(int x)
{
// I want to suppress the entry/exit logging for this class, to reduce log size
// However, this *doesnt work*; logging occurs anyway
// as attributes are additive - any ideas?
}
}
Редактировать:
Использовано [LogThis (AttributeExclude = true)], это работало нормально (см. Решение ниже).