我能从C#编程语言中以编程方式使用T4吗?

17

我正在编写生成C#代码的软件。我主要使用StringTemplate和StringBuilder。

是否有一种方法可以直接从我的代码中使用T4模板?


你是否正在尝试从C#自动化T4? - scope_creep
没错。我有一个WinForms应用程序,用户可以在其中创建服务,然后应用程序需要生成C#(C、Java...)代码。 - Đorđe
2个回答

11

Oleg Sych在这里介绍了如何进行操作:理解T4:预处理文本模板。请注意,您似乎需要使用Visual Studio 2010才能生成预处理的文本模板,但您可以将预处理的文本模板托管在任何地方,包括WinForms应用程序中。


第二个链接现在已经失效。 - user47589
将第二个链接指向对应的archive.org页面。祝你好运。 - Dan Blanchard

5
一种简单的方法是:
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();

10
不要假设 C:\ 存在。尤其不要假设 TextTemplating 已经安装。 - SLaks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接