1

我需要在我的应用程序中记录每个方法调用。我不想在业务层的每个方法中重复代码

我一直在研究 AOP 方法,这似乎是目前最好的选择,但我不知道如何使用这种方法。

任何建议或链接文章或示例将不胜感激。

4

1 回答 1

1

您可以使用PostSharp,它是一个 APO 基础设施,并且您在该链接上有一个很好的示例来了解如何使用它。

如果你也需要任何日志基础设施,你可以使用log4net

从上面的链接中,您可以看到日志属性示例,您也可以修改它以使用日志记录基础设施:

[Serializable]
public class LogAspect : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        Console.WriteLine(Environment.NewLine);

        Console.WriteLine("Entering [ {0} ] ...", args.Method);

        base.OnEntry(args);
    }

    public override void OnExit(MethodExecutionArgs args)
    {
        Console.WriteLine("Leaving [ {0} ] ...", args.Method);

        base.OnExit(args);
    }
}

在您的代码上使用它:

[LogAspect]
public void SomeMethod()
{
}

这将登录SomeMethod通话

于 2012-06-13T08:48:07.847 回答