0

我需要使用 DSL 生成和读取一些 CS 类,我采用了一种方法来使用 EnvDTE 读取 CS 文件,而我的同事使用 CodeDom 来生成 CS 文件。

它只是糖还是两者之间有很大的区别......

codeClass.AddFunction("DoSomething", vsCMFunction.vsCMFunctionFunction, "bool");

     CodeMemberMethod membMethod = new CodeMemberMethod();
        membMethod.Attributes = MemberAttributes.Static;
        membMethod.ReturnType = new CodeTypeReference("bool");
        membMethod.Name = "DoSomething";

我主观上更喜欢 EnvDTE,但不知道“真正”的区别是什么。

信息:C#,Visual Studio 2010

4

2 回答 2

0

CodeDOM 没有办法读取源代码来生成 AST。如果您需要做的只是生成 C#,那么 CodeDOM 附带 .NET 框架,因此您的应用程序不需要安装 Visual Studio。

于 2009-10-25T22:02:28.167 回答
0

使用 EnvDTE,我不确定您是否可以像使用 CodeDOM 一样操作 AST。我会选择 CodeDOM 或SharpDevelop项目中的 NRefactory,这是另一个开源 C# 解析器/生成器。

于 2009-08-25T13:43:26.200 回答