Использование генерации кода .NET

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

5
задан Hannoun Yassir 9 January 2010 в 22:01
поделиться

2 ответа

См. System.codedom пространства имен. В основном вы используете Codedom для создания абстрактной модели класса. Затем вы создали CSHARPCODEPROVIDER или VBCODEPROVIDER и использовать один из CodedomProvider.generateCodeFrom ... Методы для излучения его в качестве соответствующего исходного кода. Это базовая технология, используемая конструктором Windows Forms, XSD.exe и т. Д.

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

7
ответ дан 18 December 2019 в 11:57
поделиться

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

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

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

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

8
ответ дан 18 December 2019 в 11:57
поделиться