在生成中包含 T4 生成的 c# 类

本文关键字:包含 T4 | 更新日期: 2023-09-27 18:32:57

我有一个运行时 T4 模板,我用它来生成一个.cs文件。我需要在我的代码中访问这个生成的文件。我没有看到生成的类文件,所以我可以使用它,但是如果我执行"显示所有文件",然后将其包含在我的解决方案和构建中,我就可以访问生成的文件。

如何使用这个生成的 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";
            }
        }
    }
}

带有 Main 方法的类包含以下代码

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

在生成中包含 T4 生成的 c# 类

有 2 种不同的模板 运行时文本模板和设计时文本模板。使用设计时模板生成的文件会自动包含在项目中。运行时文本模板用于在启动程序时在运行时生成文件,而设计时文本模板允许您在 Visual Studio 项目中生成程序代码和其他文件。

因此,您所需要的只是创建新的设计时模板(TextTemplate)并将代码放入其中。生成文件:在"解决方案资源管理器"中,在任何文件的快捷菜单上,选择"运行自定义工具"或单击"生成"菜单中的"转换所有模板"。您还可以设置项目以自动生成文件。