0

我有 C# 类库,我想记录一些日志以进行性能检查,例如:

protected void test()
{
    MyLogger.Info(String.Format("{0}|{1}", "..", "..."));
    ....
    MyLogger.Info(String.Format("{0}|{1}", "..", "..."));
}

我有一个问题,我应该将这两行放在不同层的不同类中的大约 1300 个方法中,所以这将是一项虚拟工作,所以我考虑使用 AOP(PostSharp)或 JIT 在每个方法的运行时注入代码辅助工具我也想到了依赖注入中使用的代码生成器工具,但所有这些可能都不能满足我的项目需求。

我考虑将行为封装在 [LogPerformance] 之类的属性中,然后使用此属性装饰我需要的所有方法,如下所示:

[LogPerformance]
protected void test()
{
    ....
}

并且此属性将在带有它标记的每个方法的开头和结尾注入日志记录。

我知道在 MVC 过滤器中这样做很容易,但我现在正在处理业务逻辑层(类库),所以这是一种允许我这样做的方法吗?

此外,通过继承 Attribute 类在 .NET 中创建属性的方式主要用于添加编译到程序中的元数据。属性本身不会向类、属性或模块添加任何功能,只是数据。那么有没有一种方法可以让我像 ASP.NET MVC 中的过滤器一样使用它来添加行为而不仅仅是元数据?

4

0 回答 0