2009-10-29 66 views
2

我有這樣的類與一些代碼來剖析構造函數需要執行多長時間。我最好喜歡自動注入此代碼,最好是在BaseClass中。這是否可能以某種方式,所以我不需要將它添加到每個類?配置文件C#類創建

public MyClass : BaseClass 
{ 
    public MyClass() : base() 
    { 
     using (new ProfileRegion("MyClass")) 
     { 
      // Do Stuff 
     } 
    } 
} 

回答

3

不要自己添加檢測代碼 - 使用分析器爲您做這件事。有許多美妙的.NET分析器可供選擇(我有很多使用ANTS的好經驗,但也有其他選擇)。

+0

借調;本週我一直在使用ANTS--印象非常深刻。 – 2009-10-29 06:08:54

+0

我是ANTS的忠實粉絲,但今天我嘗試了VS 2010(Beta 2)中的新性能測試,我必須承認它也非常漂亮。我肯定會推薦檢查一下。 – 2009-10-29 06:22:04

0

分析通常是交叉擔憂。尋找依賴注入模式。 Martin Fowler's文章是一個好的開始。然後查找.NET IoC實現,如UnitySpring Framework。您將需要有Factory Pattern,以便您的班級的所有消費者都可以獲得該實例,並在該工廠中注入分析aspect

Spring框架示例代碼

IInvoicingWorkflowProider p = (IInvoicingWorkflowProider)Factory.createInvoicingWorkflowProvider(); 

ProxyFactory pf = new ProxyFactory(p); //This is Spring's 
pf.AddAdvice(new TracingAspect());  //TracingAspect is my aspect implementation 

return (IInvoicingWorkflowProider)pf.GetProxy();