写点什么

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:183044
用户头像

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

关注

评论

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

微信朋友圈高性能复杂度分析

LT

架构实战营

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

前端leetcde算法面试套路之树

js2030code

JavaScript LeetCode

DevData Talks | 大咖集结『研发效能答疑专场』即将开始!

思码逸研发效能

研发管理 研发效能 研发管理工具

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

zealot0317

架构训练营模块 2 作业

附加信息

架构训练营10期

微信朋友圈高性能架构_模块二作业

Geek_e5f2e5

微信朋友圈架构设计

chinandy

架构实战营 - 模块二作业

落叶挂云霄

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

数据库原理及MySQL应用 | 日志管理

TiAmo

数据库 日志 12月月更

百度工程师带你探秘C++内存管理(ptmalloc篇)

百度Geek说

c++ Linux 内存管理 12 月 PK 榜

架构实战营模块三作业-外包学生管理系统的架构文档

张Dave

React源码分析3-render阶段(穿插scheduler和reconciler)

flyzz177

React

React源码解读之任务调度

flyzz177

React

React源码解读之React Fiber

flyzz177

React

React源码分析4-深度理解diff算法

flyzz177

React

跨平台应用开发进阶(二十五) :uni-app实现IOS云打包解决IOS提交审核相册等隐私描述语导致审核失败问题

No Silver Bullet

uni-app 12月月更 IOS云打包 提交审核 隐私描述语

有哪些工作是AI无法替代的(59/100)

hackstoic

AI AIGC

跨平台应用开发进阶(二十四) :uni-app实现文件下载并保存

No Silver Bullet

uni-app 12月月更 文件下载 文件保存

跨平台应用开发进阶(二十六) :忐忑悲壮路,心酸出坑史——记第一次iOS艰辛上架路

No Silver Bullet

uni-app iOS上架 12月月更 问题汇总

如何配置分享到微信功能?

Towify

微信小程序 无代码 触发器

第九期 - 模块八

wuli洋

架构训练营 模块二作业

提姆

架构训练营10期

用javascript分类刷leetcode23.并查集(图文视频讲解)

js2030code

JavaScript LeetCode

如何使用 Towify 在小程序中实现勾选用户协议后登录?

Towify

微信小程序 无代码 触发器

软件测试 | 测试开发 | 校招面试 | 一面试就紧张,怎么办?

测吧(北京)科技有限公司

架构实战营模块二作业

周烨

React源码分析2-深入理解fiber

flyzz177

React

2022 阿里灵杰AI开发者峰会内容抢先看!

阿里云大数据AI技术

人工智能 阿里云

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