写点什么

Visual Studio 2008 的文本模板转换工具箱

  • 2008-04-20
  • 本文字数:771 字

    阅读完需:约 3 分钟

Visual Studio 2008 包含了一个文本模板转换工具箱,又称为 T4,是领域特定语言工具的一部分,并可用于基于文本模板的方式来生成代码。T4 也用于 Visual Studio 2005 的 DSL GAT 工具箱。

根据 MSDN 的描述:

一个文本模板是一个包含文本块和控制逻辑混合物的文件。当你转换一个文本模板,控制逻辑结合了文本块与模型里的数据来生成一个输出文件。你可以用文本模板来生成文本的输出,例如代码文件和 HTML 报表。举个例子,用户界面的页面之间的流程控制的模型,例如向导界面,可以通过输入一个文本模板。文本模板可以生成流程控制的代码和配置文件。

一个文本模板有一个文本模板文件作为输入,转换文本模板,并输出一个文本文件的转换过程。转换的过程有两个步骤。第一个步骤是 T4 的引擎使用文本模板生成一个临时的转换类。 第二个步骤是 T4 的引擎编译转换类为一个程序集并执行该代码,以产生了输出文本文件。

“Hello World!”的例子看起来是这样的:

<#@ template language=“C#” #>
<# Write(“Hello World!”) #>

文本模板可以包含 Visual Basic 中或 C#代码,如果没有特别指定,C#是默认的语言。 输出指令是用来指定生成的文本文件的类型。有很多种输出文件类型,其中最常用的几种是.html、.txt、.cs、.vb。默认的输出文件类型是.cs。下面是一个如何使用输出指令的例子:

<#@ output extension=".html" #>

Visual Studio 对编辑文本模板提供了有限的支持。Clarius 咨询公司有一个免费的编辑器,对T4 的模板提供了不同部分的颜色区分,智能提示和设计时预览的支持 。 Visual Studio 的支持文本模板和转换的过程中的调试,但它不是直接的支持。详细的如何调试可以在 MSDN 上找到 ,Gareth Jones 提供了一个简短的教程。Oleg Sych 发表了一篇 关于T4 的文章。更全面的MSDN 文档在这里

查看英文原文: Text Template Transformation Toolkit in Visual Studio 2008

2008-04-20 20:182797
用户头像

发布了 45 篇内容, 共 85519 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Go 杂谈——interface与nil的细节让我出了线上BUG

HZFEStudio

Go 语言

模块3 学习总结

TH

架构实战营

Spark中将DAG划分为Stage核心算法

五分钟学大数据

spark 5月日更

HBase与Hadoop的关系

大数据技术指南

HBase 5月日更

用组合式创新模型做产品建模

石云升

组合式创新 5月日更 产品建模

优秀程序员都在注意的十个点

好好学习,天天向上

Java 设计模式 代码 技巧

模块三作业 - 消息队列系统架构设计文档

青鸟飞鱼

架构实战营

【LeetCode】制作 m 束花所需的最少天数Java题解

Albert

算法 LeetCode 5月日更

架构实战营-模块3-作业

笑春风

架构实战营模块三作业

冷大大

作业 架构实战营 模块三

前端百题斩[001]——typeof和instanceof

执鸢者

面试 大前端

通过 Netty、ZooKeeper 手撸一个 RPC 服务!

Yano

Java 微服务 Netty RPC

消息队列构架设计文档

Chris Cheng

架构实训营 作业三——消息队列架构设计文档

开拓纪

第三章作业 #架构实战营

消息队列架构设计

俞嘉彬

架构实战营

读写锁

wzh

Java 并发编程 并发 JUC

ARTS - week 8 补打卡

steve_lee

架构训练营模块3作业《消息队列架构设计文档》-江哲

江哲

GoF23 中的对象行为模式草图!

鲁米

9个国外最佳免费编程学习一站式网站,谁用谁知道!

北游学Java

Java c++ php JavaScript

消息队列详细设计架构文档

Hesher

架构 MQ Architecture 消息队列 架构实战营

架构实战营 模块三:学习总结

👈

架构实战营

Java Stream 源码分析

Yano

Java stream

Semaphore

wzh

Java 并发 java工具类

【架构实战营】第3模块作业

swordman

架构实战营

第三课作业

杰语

一文看懂 Go 的数据类型

Rayjun

Go 语言

模块3作业 消息队列架构设计文档

TH

架构实战营

架构训练营——模块2作业

圆心角

模块3作业 3

wade

#架构实战营

假如只剩下canvas标签

执鸢者

大前端 canvas

Visual Studio 2008的文本模板转换工具箱_.NET_Abel Avram_InfoQ精选文章