从领域专用语言生成代码

Microsoft Domain-Specific 语言工具提供了从模型中表示的数据生成代码、文档、配置文件和其他项目的强大方法。 使用 Domain-Specific 语言工具,可以创建一组表示数据的类,并且可以在名称和属性反映该数据的类中编写文本模板。

例如,Fabrikam 具有客户名称和电子邮件地址的 XML 文件。 他们的开发人员创建一个模型,其中 Customer 是一个类,其属性名称和电子邮件。 他们编写多个文本模板来处理数据,包括此片段,该片段将生成所有客户的表作为 HTML 页面的一部分:

<table>
<# foreach (Customer c in ContactList) {  #>
  <tr><td> <#= c.FullName #> </td>
      <td> <#= c.EmailAddress #> </td> </tr>
<# } #>  </table>

处理客户数据库时,XML 文件将读取到模型存储中。 使用 Domain-Specific 语言工具创建的 指令处理器使 Customer 类可供文本模板中的代码使用。 许多文本模板可以针对同一存储运行。

文本模板对于 Domain-Specific 语言工具至关重要。 它们用于生成域模型元素的源代码,以及用于将工具与 Visual Studio 集成的 VSPackage 和控件。

本部分讨论创建、修改和调试 Domain-Specific 语言工具中使用的文本模板的一些方法。

本节中

从文本模板访问模型
提供有关在文本模板中引用特定于域的语言的基本信息。

演练:调试访问模型的文本模板
介绍如何对引用域特定语言的文本模板进行故障排除和调试。

演示指南:将主机连接到生成的指令处理器
介绍如何将自定义主机连接到生成的指令处理器。

DslTextTransform 命令
描述在命令行上为引用域特定语言的文本模板执行 TextTransform 可执行文件的命令文件。

Reference

编写 T4 文本模板
提供文本模板指令和控制块的语法。