Могу ли я использовать T4 программно из С#?

Я пишу программное обеспечение, которое создает код С#. В основном я использую StringTemplate и StringBuilder.

Есть ли способ использовать шаблоны T4 непосредственно из моего кода?

Ответы

Ответ 1

Олег Сыч описывает, как это сделать здесь: Понимание T4: Предварительно обработанные текстовые шаблоны. Обратите внимание, что вам понадобится Visual Studio 2010 для создания предварительно обработанного текстового шаблона, но вы сможете разместить предварительно обработанный текстовый шаблон везде, где хотите - в том числе в вашем приложении WinForms.

Ответ 2

Простой способ сделать это:

System.Diagnostics.Process proc = new System.Diagnostics.Process();

proc.EnableRaisingEvents = false;

// Set text transform program (this could change according to the Windows version)
proc.StartInfo.FileName = "C:\\Program Files (x86)\\Common Files\\microsoft shared\\TextTemplating\\10.0\\TextTransform.exe";

// Specify T4 template file
proc.StartInfo.Arguments = "C:\template.tt";

proc.Start();