2014-02-17 34 views
1

我想創建一個具有特定語義目的的新定製「[Tag]」。如何用特定的方法調用創建[標籤]?

圖片你有一個服務方法的列表,你想他們中的一些記錄一些信息:實際上我在做這樣的事情

public void Method(parameters) 
{ 
    LogMethodCall(); 

    //Method Body 
} 

其實我prefere像創造的東西:

[LogEnabled] 
public void Method(parameters) 
{ 
    //Method Body 
} 

而且已經存儲的地方是這樣的:

if (Method is LogEnabled) LogMethodCall() 

這是POS機錫布爾赫丁?在C#中存在這種可能性?它怎麼叫?

+0

從來沒有測試它,但你可能想看看在:http://www.postsharp.net/ – ken2k

+0

[在C#中面向方面編程]的可能重複(http://stackoverflow.com/questions/1416880/aspect-oriented-programming-in-c-sharp) – Dennis

+0

@丹尼斯如何重複? – svick

回答

2

使用postsharp

有了它,你可以創造的東西,被稱爲aspect。你會看起來像:

public class LogEnabled : OnMethodBoundaryAspect 
{ 
     public override void OnEntry(MethodExecutionArgs args) 
     { 
      Logger.LogMethodCall(); 
     } 
} 

免費,快捷版將是你所需要的

而這些都是所謂的屬性,而不是「標籤」

相關問題