Существуют ли различия между EnvDTE или CodeDom при генерации кода - PullRequest
0 голосов
/ 25 августа 2009

У меня есть требование генерировать и читать некоторые классы CS с помощью DSL, я принял один метод для чтения файлов CS с помощью EnvDTE, и мой коллега использовал 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

Ответы [ 2 ]

0 голосов
/ 26 октября 2009

CodeDOM не имеет возможности прочитать исходный код для создания AST. Если все, что вам нужно сделать, это сгенерировать C #, то CodeDOM поставляется с платформой .NET, поэтому ваше приложение не требует установки Visual Studio.

0 голосов
/ 25 августа 2009

Используя EnvDTE, я не уверен, что вы можете манипулировать AST, как вы можете с CodeDOM. Я бы пошел с CodeDOM или NRefactory из SharpDevelop проекта, который является еще одним открытым парсером / генератором C #.

...