Как избежать дублирования блоков пробной ловли

У меня есть несколько методов, которые выглядят следующим образом:

public void foo()
{
   try 
   {
      doSomething();
   }
   catch(Exception e)
   {
      Log.Error(e);
   }
 }

Могу ли я изменить код, чтобы он выглядел следующим образом?

[LogException()]
public void foo()
{   
   doSomething();
}

Как я могу реализовать этот пользовательский атрибут и каковы плюсы и минусы его реализации?

-----Правка 1------------

Могу ли я реализовать его сам, то есть просто написать один класс, или мне нужно использовать postsharp или другое решение?

11
задан Mark Hall 12 September 2011 в 07:40
поделиться