写点什么

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

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

关注

评论

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

Java 从一个 List 中删除重复的元素

HoneyMoose

redis性能调优--内存使用率过高

en

redis 内存

千万级学生管理系统的考试试卷存储方案

高山觅流水

「架构实战营」

模块四:学生管理系统考试试卷存储方案

jiaoxn

「架构实战营」

千万级学生管理系统的考试试卷存储方案设计

大眼喵

「架构实战营」

DevOps系列之 —— DevOps概览(一)软件产业和交付模式发展趋势

若尘

DevOps 5月月更

[Day32-04]-[二叉树]二叉树的最近公共祖先

方勇(gopher)

LeetCode 二叉树 数据结构和算法

如何在网站上安装 WordPress

海拥(haiyong.site)

WordPress 5月月更

【建议收藏】Redis知识干货汇总

利志分享

redis 面试

C语言总结_字符串函数封装练习

DS小龙哥

5月月更

SpringSecurity 表单登录

急需上岸的小谢

5月月更

[Day33-01]-[二叉树] 路径总和

方勇(gopher)

LeetCode 二叉树 数据结构和算法

深度学习之解构基础网络结构

AIWeker

人工智能 深度学习 基础网络

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

michael

架构实战营 #架构实战营 「架构实战营」

Gitea 如何配置自定义页面

HoneyMoose

Nation3云上国家--一场基于Web3的社会实验(32/100)

hackstoic

DAO web3 nation3

深入理解 Go 中的字符串

宇宙之一粟

字符串 Go 语言 5月月更

MySQL三万字精华总结 + 面试100问吊打面试官绰绰有余

Java架构追梦

Java MySQL 程序员面试

摸鱼即刻开始

程序员阿杜

Java 如何逆向遍历一个 List

HoneyMoose

Continuous Integration 对 ABAP 技术栈来说意味着什么

汪子熙

持续集成 SAP abap 5月月更 持续优化

Kotlin 入门笔记(一)

如浴春风

5月月更

电商秒杀系统设计

Geek_36cc7c

运营好公众号需要具备的能力/技能

源字节1号

软件开发

[Day32-05]-[BST] BST最近公共祖先

方勇(gopher)

LeetCode 二叉树 数据结构和算法

深度学习之解构卷积

AIWeker

人工智能 深度学习 卷积 convolution

他们连夜跑路了,原因是我给数据开发的学弟学妹写了个实习生年终总结

袁袁袁袁满

Git进阶系列 | 1. 创建完美的提交

俞凡

git 最佳实践

【51单片机】矩阵键盘

謓泽

5月月更 51单片机

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