Генерация кода с использованием .net - PullRequest
5 голосов
/ 10 января 2010

Существуют ли какие-либо классы в .net Framework, которые позволяют мне создавать классы, которые я могу сохранить как файлы .cs или .vb?

Ответы [ 2 ]

8 голосов
/ 10 января 2010

Вам действительно нужны определенные классы .NET, или вы можете жить с надстройкой к Visual Studio ??

Если у вас есть Visual Studio, обязательно ознакомьтесь с шаблоном T4 - одним из наименее известных и в то же время наиболее ценных ресурсов в VS!

По крайней мере, есть инструмент командной строки, который можно вызвать из кода .NET для выполнения преобразования, но я уверен, что вы также можете вызвать какой-нибудь механизм преобразования в качестве класса .NET и генерировать его на C # или VB. NET код из вашего шаблона T4 программно.

Как правило, использование T4 намного проще, чем CodeDom - у него есть свои ограничения, но по большей части это отличная технология для быстрого и легкого выполнения задач.

7 голосов
/ 10 января 2010

См. Пространство имен System.CodeDom. В основном вы используете CodeDom для создания абстрактной модели класса. Затем вы создаете экземпляр CSharpCodeProvider или VBCodeProvider и используете один из методов CodeDomProvider.GenerateCodeFrom ... для его выдачи в качестве соответствующего вида исходного кода. Это базовая технология, используемая конструктором Windows Forms, xsd.exe и т. Д.

Имейте в виду, однако, что CodeDom довольно многословен и с ним трудно работать. Если ваши занятия умеренно сложны, вы можете вместо этого использовать шаблонизатор, такой как T4 или NVelocity.

...