То, что я думаю, вы хотите взглянуть на предварительно обработанные шаблоны (или шаблоны времени выполнения). Вы создаете их в Visual Studio 2010 с помощью шаблона Preprocess Text Template.
Я создал этот очень простой шаблон (я назвал его MyTemplate.tt):
<#@ template language="C#"#>
<#
for (var iter = 0; iter < HowManyCommentsToGenerate; ++iter)
{
#>
// <#=iter#>
<#
}
#>
Я добавил этот частичный класс, который расширяет сгенерированный класс полем HowManyCommentsToGenerate:
partial class MyTemplate
{
int HowManyCommentsToGenerate;
public MyTemplate (int count)
{
HowManyCommentsToGenerate = count;
}
}
Наконец, я использую это так (обратите внимание, что выводом является строка, а не файл):
class Program
{
static void Main(string[] args)
{
var str = new MyTemplate(32);
Console.Write(str.TransformText());
}
}
Что касается производительности, мне, честно говоря, не хватает опыта работы с шаблонами времени выполнения, чтобы посоветовать вам это. Я рекомендую прочитать сгенерированный код и профилировать его.