C# T4模板中的继承

C# T4模板中的继承,c#,inheritance,t4,C#,Inheritance,T4,我正在尝试为我的所有.tt文件创建一个基类,这样我就不必复制我的代码,但我不知道如何让它正常工作 据我所知,.tt文件中的继承必须从预编译代码中完成,所以我创建了另一个项目,以便在我的tt项目之前编译它。我试了这么多东西都没有结果 这是我的基类BaseClass.cs: public class BaseClass { public virtual void SaveFiles(string[] filePaths) { //Do something }

我正在尝试为我的所有.tt文件创建一个基类,这样我就不必复制我的代码,但我不知道如何让它正常工作

据我所知,.tt文件中的继承必须从预编译代码中完成,所以我创建了另一个项目,以便在我的tt项目之前编译它。我试了这么多东西都没有结果

这是我的基类
BaseClass.cs

public class BaseClass
{
    public virtual void SaveFiles(string[] filePaths)
    {
        //Do something
    }
}
这可能是我想从
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);       
   }
}#>


正如我所说,我已经创建了另一个项目,因此可以对其进行编译,但我真的不知道要从.tt文件中的
BaseClass
继承,还需要尝试什么。

您需要在T4模板中包括对包含
BaseClass
类的程序集的引用,如下所示:

<#@ assembly name="AssemblyName.dll" #>


其中“AssemblyName.dll”是包含
基类的程序集的名称。您需要提供DLL的完整路径,或者可以使用Visual Studio宏,例如
$(ProjectDir)

这是用于运行时T4还是设计时T4?