2014-12-03 3 views
0

У меня есть шаблон времени выполнения T4, с помощью которого я создаю файл .cs. Мне нужно получить доступ к этому сгенерированному файлу в моем коде. Я не вижу сгенерированный файл класса, чтобы я мог его использовать, но если я сделаю «Показать все файлы», а затем включу его в мое решение и построю, я тогда смогу получить доступ к сгенерированному файлу.Включить T4 сгенерированный класс C# в сборке

Как использовать этот сгенерированный файл C# без необходимости внесения каких-либо изменений вручную.

Это должно быть что-то, как я использовать код

RuntimeTextTemplate runTimeGen = new RuntimeTextTemplate(); 
File.WriteAllText("RuntimeGenerator3.cs", runTimeGen.TransformText()); 

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

Имя шаблона выполнения является RuntimeGenerator.tt

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

namespace Controls 
{ 
    public class DropDownControlUtility 
    { 
     public static string ForeColor 
     { 
      get 
      { 
       return "Blue"; 
      } 
     } 
    } 
} 

класса с основным методом содержит код ниже

class Program 
    { 
     static void Main(string[] args) 
     { 
      RuntimeGenerator gen = new RuntimeGenerator(); 
      File.WriteAllText("DropDownUtility.cs", gen.TransformText()); 
     } 
    } 
+0

Можете ли вы показать свой шаблон и как создать файл? –

ответ

4

Есть 2 различных шаблоны Run-time text template и Design-time text template. Файлы, созданные с использованием шаблона времени разработки, автоматически включаются в проект. Шаблон времени выполнения используется для генерации файлов во время выполнения программы, в то время как шаблоны текста времени разработки позволяют генерировать код программы и другие файлы в проекте Visual Studio.

Так что вам нужно только создать новый шаблон времени разработки (TextTemplate) и поместить в него свой код. Чтобы создать файл: в обозревателе решений в контекстном меню любого файла выберите «Запустить пользовательский инструмент» или «Трансформировать все шаблоны» в меню «Построение». Вы также можете настроить свой проект для создания файлов automaically.