如何以编程方式解析和修改C#代码

ulr*_*chb 10 .net c# codedom

我想要做的是读取C#代码,解析它,插入一些方法调用并最终编译它.

是否可以将C#源代码(字符串列表)转换为CodeDOM对象?

bob*_*mcr 6

使用核心.NET Framework无法直接执行此操作.您需要使用第三方或附加工具,例如:

  • 不,不是的.CodeDom适用于托管应用程序开发人员; csc.exe是非托管代码,没有.NET依赖项. (4认同)

Asa*_*din 6

这是一个非常古老的问题,但值得注意的是,已接受的答案不再适用.微软最近的Roslyn项目明确旨在揭示编译器在静态分析代码库过程中获得的所有知识,并通过托管API公开所有这些信息,以便您利用.它适用于VB和C#.

由于您希望使用静态分析信息,因此您需要Microsoft.CodeAnalysisNuGet包(C#所需的内容位于Microsoft.CodeAnalysis.CSharp命名空间下),并且需要一些时间在文档中的示例和演练页面.