我有這樣的類與一些代碼來剖析構造函數需要執行多長時間。我最好喜歡自動注入此代碼,最好是在BaseClass中。這是否可能以某種方式,所以我不需要將它添加到每個類?配置文件C#類創建
public MyClass : BaseClass
{
public MyClass() : base()
{
using (new ProfileRegion("MyClass"))
{
// Do Stuff
}
}
}
我有這樣的類與一些代碼來剖析構造函數需要執行多長時間。我最好喜歡自動注入此代碼,最好是在BaseClass中。這是否可能以某種方式,所以我不需要將它添加到每個類?配置文件C#類創建
public MyClass : BaseClass
{
public MyClass() : base()
{
using (new ProfileRegion("MyClass"))
{
// Do Stuff
}
}
}
不要自己添加檢測代碼 - 使用分析器爲您做這件事。有許多美妙的.NET分析器可供選擇(我有很多使用ANTS的好經驗,但也有其他選擇)。
分析通常是交叉擔憂。尋找依賴注入模式。 Martin Fowler's文章是一個好的開始。然後查找.NET IoC實現,如Unity或Spring 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();
借調;本週我一直在使用ANTS--印象非常深刻。 – 2009-10-29 06:08:54
我是ANTS的忠實粉絲,但今天我嘗試了VS 2010(Beta 2)中的新性能測試,我必須承認它也非常漂亮。我肯定會推薦檢查一下。 – 2009-10-29 06:22:04