我知道 AOP 和 Postsharp,但这里的限制是我不能使用 postsharp,并且使用属性进行日志记录会产生性能开销。
但是现在我必须再次将日志代码放入每个方法中,大量复制粘贴,而且它也不是方法的一部分。所以,我的职能不止一项工作。将业务逻辑和日志放在一起有点不太好。
反正有没有,比如让类开放式并且可以从类或函数的外部添加日志。或者我只需要使用传统的日志记录方式。
请让我知道是否需要任何进一步的信息。也欢迎任何好的/另一种记录方式的建议。
嗨,正如 Peter Ritchie 所说, http: //msdn.microsoft.com/en-us/magazine/gg490353.aspx是一个很好的解决方案。您还可以查看http://www.microsoft.com/en-us/download/details.aspx?id=17866或其他 DI 框架,如 Ninject,这对于 MVC 项目来说是一个很好的框架。无论如何,这是关于 DI 性能的好文章http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison。
企业库和 Unity。您可以使用组合来围绕其他类创建日志装饰器,这些类记录然后传递给其他类。
你可以为你的类创建装饰器,看看http://en.wikipedia.org/wiki/Decorator_pattern