Ознакомьтесь с Использование CodeDOM для генерации кода CSharp (C #) и VB
T4 или Text Template Transformation Toolkit , возможно, стоит изучить.
Другой вариант - создать собственный простой генератор, который содержит функции, более подходящие для вашей ситуации, чем CodeDOM. В недавнем проекте генерации кода это то, что я сделал, однако я инкапсулировал генерацию кода, чтобы в дальнейшем можно было перейти на CodeDOM.
Если вы хотите иметь возможность сгенерировать класс по некоторой произвольной строке, содержащей код C #, вам понадобится компилятор C #. На данный момент платформа .Net не поставляется с компилятором, которому вы можете передавать фрагменты C # и получать обратно скомпилированный код. Если у вас есть более конкретные потребности, вы должны точно указать, чем вы хотите заниматься.
Вы можете посмотреть csscript , основанный на CodeDOM.
Это позволяет вам писать такие вещи, как:
var PrintSum = CSScript.LoadMethod(
@"public static void PrintSum(int a, int b)
{
Console.WriteLine((a+b));
}")
.GetStaticMethod();
PrintSum(1, 2);
Обязательно прочтите документ, он довольно подробный, и вы обнаружите, что можете сделать намного больше, чем то, что я только что скопировал.
Поскольку вы явно ищете генератор кода с открытым исходным кодом, я предлагаю MyGeneration . Другой подход, основанный на шаблонах (который не является тем, что вы ищете, поскольку вам нужен синтаксис «GenClass.Add ....», а не шаблоны) - это Codesmith Tools , это действительно мощный, но закрытый исходный код.