2009-05-25 34 views
0

我想生成到方法體:如何在C#中自動生成記錄器調用源代碼?

private void SomeMethod() 
{ 
Logger.Log("Entering SomeMethod."); 

// do stuff here 

Logger.Log("Exiting SomeMethod.") 
} 

是否有一個工具,它可以生成適合我? 如果沒有,我想實現一個自己,然後我就在那裏,我應該看哪個庫爲識別在C#源代碼的方法呢?簡單的正則表達式應該足夠了嗎?

回答

5

退房postsharp

http://www.postsharp.org/

這是一個看點爲導向的編程框架。它將使如果你在代碼生成你的意圖與將運行記錄器屬性,安全檢查等

1

使用AOP框架,該框架。

看看Spring.NET或城堡動態代理。

代碼生成一般不會在大多數情況下是個好主意。

5

你肯定找PostSharp這裏 - 爲.NET面向方面編程(AOP)。它將允許您添加在任意方法開始之前和結束之後執行的處理程序,以便您實際上只需要在一個位置定義日誌記錄代碼。

1

畫你的方法,那麼你應該真正做到每個代碼文件的完整(和適當的)解析。

的「C夏普分析器」一些谷歌搜索給出了幾個可能的結果: Here And Here

然後,所有你需要做的是遍歷解析樹,並添加方法調用的開始和結束每種方法。