Подтвердить что ты не робот

Генератор кода С#

Может кто-то рекомендовать простой генератор кода С#. Я просто смотрю что-то с помощью таких методов, как:

GenClass = CreateNewClass(AccessModifier,Name......)

GenClass.Add(new Method(AccessModifier,RetType,Name....){[email protected]"....."}

GenClass.Add(new Property(AccessModifier,Type, Name....)

........... и т.д.

и после создания всех классов\методов и других членов мы вызываем функцию генерации кода (где мы можем указать некоторые параметры)

Есть ли такой генератор кода с открытым исходным кодом?

4b9b3361

Ответ 2

T4 или Инструментарий преобразования шаблонов текста, возможно, стоит изучить.

Другой вариант - создать собственный простой генератор, который содержит функции, более подходящие для вашей ситуации, чем CodeDOM. В недавнем проекте генерации кода, что то, что я сделал, однако я инкапсулировал генерацию кода, чтобы сделать возможным позднее переход к CodeDOM.

Ответ 3

Возможно, вам захочется посмотреть csscript, который зависит от CodeDOM.

Он позволяет писать такие вещи, как:

var PrintSum = CSScript.LoadMethod(
        @"public static void PrintSum(int a, int b)
          {
              Console.WriteLine((a+b));
          }")
          .GetStaticMethod();
PrintSum(1, 2);

Обязательно прочитайте документ, он довольно подробно, и вы обнаружите, что можете сделать гораздо больше, чем то, что я только что скопировал раньше.

Ответ 4

Если вы хотите, чтобы иметь возможность генерировать класс, заданный какой-либо третейской строкой, содержащей код С#, вам нужен компилятор С#. На данный момент инфраструктура .Net не поставляется с компилятором, что вы можете передавать фрагменты С# и получать скомпилированный код обратно. Если у вас есть более конкретные потребности, вы должны точно указать, что вы хотите сделать.

Ответ 5

Поскольку вы явно ищете генератор кода с открытым исходным кодом, я предлагаю MyGeneration. Другой подход, основанный на шаблонах (который не является тем, что вы ищете, так как хочет "GenClass.Add...." вместо синтаксиса) будет Инструменты Codesmith это действительно мощный, но закрытый источник.