写点什么

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

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

关注

评论

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

浅析云原生

鲸品堂

深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」

码界西柚

nginx 正向代理与反向代理 11月日更 nginx 开源版 开发指南

构建高质量的持续交付体系

老张

软件工程 持续交付

湖仓一体架构下的数据研发及管理

数造万象

JVM Sandbox入门教程与原理浅谈

Zhendong

Java JVM

2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru

福大大架构师每日一题

rust 福大大 过程宏

【Dubbo源码】SPI机制源码解析

石臻臻的杂货铺

dubbo 11月月更

初始Java诊断工具-Arthas

石臻臻的杂货铺

Java Arthas 11月月更

分布式事务详解、理论分析、及强一致性(2PC、3PC)剖析

C++后台开发

数据库 分布式 后端开发 Linux服务器开发 C++开发

数字化转型有可能让所有人满意吗?

优秀

数字化转型

阿里云弹性计算总经理张献涛:智能化、高效能、新交互将重塑互联网

云布道师

弹性计算 云栖大会

数据预处理和特征工程-特征选择-Embedded嵌入法

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

谈谈我对服务网格的理解

阿里巴巴云原生

阿里云 云原生 服务网格

Thymeleaf入门教程

Studying_swz

前端 thymeleaf 11月月更

九科信息受邀参加中国总会计师协会财务数智化转型研讨会

九科Ninetech

精益创业者的用户体验设计

产品海豚湾

产品经理 产品设计 精益思想 用户体验 11月月更

AI音乐创作,让每一个人都成为音乐家

HarmonyOS SDK

音频 HMS Core

甩掉容量规划炸弹:用 AHPA 实现 Kubernetes 智能弹性伸缩

阿里巴巴云原生

阿里云 Kubernetes 云原生 AHPA

工信部电子五所李冬:在龙蜥社区的一站式自动化测试平台的探索和实践|2022云栖龙蜥实录

OpenAnolis小助手

开源 操作系统 自动化测试 龙蜥社区 2022云栖大会

泛型由入门到精通(2)

好程序员IT教育

Java 泛型

【愚公系列】2022年11月 微信小程序-app.json配置属性之Worker

愚公搬代码

11月月更

从0开始,让你的Spring Boot项目跑在Linux服务器

闫同学

spring Linux 服务器 11月月更

浅谈MVC、MVP、MVVM框架模式

闫同学

mvc MVP MVVM 11月月更 框架模式

4K60帧!RayLink远程控制软件如何帮助设计师远程办公?

RayLink远程工具

远程控制软件 远程办公软件 远控软件 远程桌面连接 RayLink

EMI 滤波电路是由哪些元件组成的,一文看懂!

元器件秋姐

元器件采购 元器件电商 EMI滤波电路 滤波电路 元器件知识

基础逻辑门

芯动大师

Verilog 11月月更 Xilinx

Kotlin变量声明和类型推断

子不语Any

kotlin Andriod 11月月更

mysql的高可用方案以及优缺点

想要飞的猪

秒云加入OpenCloudOS操作系统开源社区,携手打造更智能、更可控、更可信的云原生环境

MIAOYUN

开源社区 opencloudOS

泛型由入门到精通(3)

好程序员IT教育

Java 泛型

MySQL事务的隔离级别以及脏读、幻读和不可重复读

闫同学

MySQL 事务 11月月更

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