配置文件C#类创建

时间:2009-10-29 05:59:48

标签: c#

我有一个这样的类,有一些代码可以分析构造函数执行的时间。理想情况下,我希望自动注入此代码,最好是在BaseClass中。这可能是某种方式,所以我不需要将它添加到每个类?

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

2 个答案:

答案 0 :(得分:3)

不要自己添加检测代码 - 使用分析器为您执行此操作。有许多精彩的.NET分析器可供选择(我使用ANTS有很多很好的经验,但还有其他选择。)

答案 1 :(得分:0)

概况分析通常是跨领域的关注点。寻找依赖注入模式。 Martin Fowler's文章是一个好的开始。然后查找像UnitySpring Framework这样的.NET IoC实现。您需要Factory Pattern到位,所有类的消费者都可以通过该aspect获取实例,并在该工厂中注入性能分析{{3}}。

Spring Framework示例代码

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();