如何在项目中包装每个函数?

时间:2011-11-20 08:16:05

标签: c# .net nlog

我的WinForms项目中有很多函数,我正在使用NLog进行日志记录。我希望能够使用nlogger.Info("start")nlogger.Info("end")包装每个函数,以便我知道实际发生异常的位置或代码当前运行的位置。

有没有一种聪明的方法可以做到这一点,或者我需要在我的所有功能中放置上面的行?

2 个答案:

答案 0 :(得分:3)

我相信PostSharp可以为您执行此操作,并且可以在程序集级别(通过程序集级别属性)应用。但是,我会对潜在的性能影响持谨慎态度。写“方面”应该是非常小的。

答案 1 :(得分:2)

如果您不想手动执行此操作,您可以考虑使用面向方面编程。

总结它是什么,它匹配在之前,之后或周围运行并提供“建议”的功能。因此,您可以轻松地创建一个在所有功能上运行并添加到日志中的功能。从未将它用于C#,但我将它用于Java。

您可以找到.NET的类。阅读本文以获取更多信息:

http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/