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