Наследование в шаблонах T4 - PullRequest
0 голосов
/ 12 марта 2020

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

Я пробовал так много вещей без результат:

public class BaseClass
{
    public virtual void SaveFiles(string[] filePaths)
    {
        //Do something
    }
}

Это мой базовый класс BaseClass.cs.

И это может быть один из классов, которые я хочу унаследовать от BaseClass:

<#@ include file="IdentificableDomainEntityTemplate.tt" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ template language="C#" inherits="BaseClass" #>

<#+
public class IdentificableDomainEntitiesGenerator : BaseClass
{
   public string AssemblyFile {get; set;}
   public string AgentNamespace {get; set;}
   public string Namespace {get; set;}
   public string EntityName {get; set;}
   public List<string> EntitiesToGenerate;
   public List<string> ReferencesToGenerate;
   public Dictionary<string, List<string>> EntityExceptionsProperties;
   public string OutputFolder{get;set;}
   public string AddToProject{get;set;}  

   public void RunCore()
   {
    this.SaveFiles(null);       
   }
}#>

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

...