C# 如何在C中自动生成对源代码的记录器调用?

C# 如何在C中自动生成对源代码的记录器调用?,c#,logging,code-generation,C#,Logging,Code Generation,我想在方法体中生成的内容: private void SomeMethod() { Logger.Log("Entering SomeMethod."); // do stuff here Logger.Log("Exiting SomeMethod.") } 有没有一个工具可以为我生成? 如果没有,我想自己实现一个,那么从哪里开始,我应该研究哪个库来识别c源代码中的方法?简单的正则表达式就足够了?为此使用AOP框架 看看Spring.NET或Castle动态代理 在大多数情况下,代码生成

我想在方法体中生成的内容:

private void SomeMethod()
{
Logger.Log("Entering SomeMethod.");

// do stuff here

Logger.Log("Exiting SomeMethod.")
}
有没有一个工具可以为我生成?
如果没有,我想自己实现一个,那么从哪里开始,我应该研究哪个库来识别c源代码中的方法?简单的正则表达式就足够了?

为此使用AOP框架

看看Spring.NET或Castle动态代理


在大多数情况下,代码生成通常不是一个好主意。

您肯定在这里寻找面向方面的编程AOP for.NET。它将允许您添加在任意方法开始之前和结束之后执行的处理程序,这样您实际上只需要在一个位置定义日志代码。

请查看postsharp


这是一个面向方面的编程框架。它将允许您使用将运行记录器、安全检查等的属性来绘制方法。

如果您打算生成代码,那么您真的应该对每个代码文件进行完整和正确的解析

通过谷歌搜索C Sharp解析器,可以得出以下几种可能的结果:

然后,您所需要做的就是遍历解析树,并在每个方法的开头和结尾添加方法调用