我想創建一個屬性HandleError
,我會穿上這樣一類:的屬性,將包裝所有方法,在課堂上使用try {}趕上
[HandleError]
public class Foo
{
public void Do(){}
...
public void Don(){}
}
,它會包裹在嘗試所有方法趕上,所以我相信它應該是這樣的:
public class HandleErrorAttribute : Attribute
{
public void Execute()
{
try
{
method.Execute();
}
catch(Exception ex)
{
//log
}
}
}
這是可能的嗎?
在當前的框架,沒有。儘管AOP庫中有一個可能是可能的。 http://www.sharpcrafters.com/aop.net – asawyer
這不是什麼屬性。正如@asawyer所說,postsharp可以允許這樣做;並且在將來的版本中,這種事情可能作爲擴展感謝編譯器重寫(aka Roslyn);但目前:沒有 –
@MarcGravell,你認爲這是因爲Roslyn而內置的,還是你認爲我們必須爲它構建一個開源項目? –