【问题标题】:How to programmatically modify code如何以编程方式修改代码
【发布时间】:2012-11-25 19:37:41
【问题描述】:

我需要的是一个工具(如果可能的话是一个库),它允许我在解决方案中解析 C# 源代码并检测每个单个对象(在解决方案的类中声明)和每个单个静态类以供将来操作。

我需要它,因为我会以编程方式插入一些方法调用(用于记录目的),但为了做到这一点(并且自动),我需要知道每个对象的结构(因为我还将包括对象状态的描述。 ..)

目前我已经考虑过这个解决方案: http://csparser.codeplex.com/

但我不确定它是否最适合我的目的(似乎已被放弃)。 我希望这里有人知道更好的解决方案(如果可能,免费)。

【问题讨论】:

  • 很明显,即将成为 MS 语言战略基石的 Roslyn 框架就是您问题的答案。

标签: c#-4.0 code-analysis error-logging


【解决方案1】:

我会查看来自 Microsoft 的 Rosyln CTP

传统上,编译器是黑盒子——源代码在一端,目标文件或程序集从另一端出来。 Roslyn 项目通过将 Visual Basic 和 C# 编译器作为 API 开放来改变该模型。

【讨论】:

    【解决方案2】:

    我们的 DMS 软件再造工具包可以使用语言准确的解析器对源代码执行任意“编程”操作。在内部,它像编译器一样运行(解析、树构建、分析),但人们可以控制它的工作,并对 AST 进行更改,以及从这些更改的树中重新生成有效的源文本。

    它有可用的 C# 和 VB.dot 前端。

    它是商业的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2015-02-27
      相关资源
      最近更新 更多