从外部文本模板生成代码——我应该编写常规的C#工具还是使用文本模板工具

本文关键字:工具 文本 代码 我应该 从外部 常规 | 更新日期: 2023-09-27 17:58:04

到目前为止,我对T4只有一点经验,这就是我为什么要问的原因。

我有这样的问题——我有一个外部文件(模板),而不是将自己转换为C#代码的模板(然后我会使用T4)。这里(只是一个例子!)我正在构建非常有限(非常有限)的ORM。所以我的模板看起来是这样的:

Entry
*ID int
*Lang string
Text string

这应该转换为全类,它的开头是这样的:

public class Entry
{
  public int ID { get; set; }
  public string Lang { get; set; }
  public string Text { get; set; }
  public object[] PrimaryKeys { get { return new object[] { ID, Lang }; } }
  public void ReadRecord(...
}

问题——我的下一个最佳步骤是什么:我应该自己转换还是应该使用T4(或其他类似工具)。

我能想到的我自己的工具的一个优点是IF我有/花足够的时间,我可以省略模板文件,直接依靠数据库结构(在this的情况下)而不是模板文件来创建C#。

在回答时,如果您在这两种情况下都推荐您的解决方案(输入:文本模板与二进制文件,如db),请明确这一点。

备注:请,请,不要以"为什么不使用NHibernate/LS2/EF…"开头。谢谢

从外部文本模板生成代码——我应该编写常规的C#工具还是使用文本模板工具

我认为T4可以满足您的需求。查看此MSDN链接中的"设计时T4文本模板"部分。它描述了读取XML配置文件以驱动代码生成。基本上将读取输入文件的代码放入.tt文件的第一部分,然后在布局类时引用所读取的内容。