.NET — Создание простого инструмента для создания строительных лесов

Мы будем использовать инструмент преобразования текстовых шаблонов, также известный как T4.

  1. Создайте консольное приложение.

    dotnet new console -o MyTool
    
  2. Создайте файл шаблона ClassTemplate.tt в директории проекта.

    <#@ output extension=".cs" #>
    <#@ template language="C#" hostspecific="true" #>
    <#@parameter type="System.String" name="ClassName" #>
    public class <#=ClassName#>
    {  }
    
  3. Для обработки шаблона нам понадобится механизм шаблонизации, Mono.TextTemplating является его реализацией с открытым исходным кодом.

    dotnet add package Mono.TextTemplating
    
  4. В Program.cs напишите код для обработки шаблона.

    var className = args[0];
    var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ClassTemplate.tt");
    var outputPath = Path.Combine(Directory.GetCurrentDirectory(), className); 
    var generator = new Mono.TextTemplating.TemplateGenerator();
    
    var session = generator.GetOrCreateSession();
    session.Add("ClassName", className);
    
    generator.ProcessTemplate(templatePath, outputPath); 
    
  5. Перейдите в нужную директорию и запустите:

    ProjectA> dotnet run path/to/MyTool Person
    

    Это создаст Person.cs в директории ProjectA:

    public class Person
    {  }
    

Если вы хотите установить и запустить его как инструмент dotnet, прочтите это.

Ресурс

Документы Microsoft

Оцените статью
devanswers.ru
Добавить комментарий