Как в Т4 сгенерировать простой класс?

Рейтинг: 2Ответов: 1Опубликовано: 20.10.2014

Как в Т4 сгенерировать простой класс?

Создаю Т4 - жму Ран кастом тул, и оно генерит какой-то рабочий класс в стиле:

#line hidden
/// <summary>
/// Create the template output
/// </summary>
public virtual string TransformText()

Как сделать, чтобы было наподобие T4MVC, только уже готовые классы.

Для примера: чтоб Т4 создал три класса с полем int testField {get; set;}.

UPD. http://t4-editor.tangible-engineering.com/blog/how-to-generate-multiple-output-files-from-a-single-t4-template.html

Ответы

▲ 1Принят

T4 умеет всё, но он работает не на том уровне. Он генерирует текстовый файл, а будет в этом файле исходник класса или «Война и мир», зависит лично от вас.

Генерация классов делается примерно так:

<#@ template language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>

<# var classNames = new[] { "ClassA", "ClassB", "ClassC" };
   foreach (var name in classNames)
   {
#>

public class <#= name #>
{
    public int TestField { get; set; }
}

<# } #>