写点什么

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

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

关注

评论

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

面向WEB开发的Docker(三):安装Docker

devpoint

Docker 12月日更

高性能云网关,打通云内外业务互通的任督二脉

华为云开发者联盟

网关 云平台 华为云Stack 云网关 L2BR/L3G

一文带你从零认识什么是XLA

华为云开发者联盟

深度学习 tensorflow PyTorch 深度学习编译器 XLA

让数据大白于天下:GCC插件实现代码分析和安全审计

华为云开发者联盟

数据结构 安全审计 GCC 代码分析 安全分析

Java 泛型通配符详解

编程江湖

JAVA开发 java编程

React进阶(六):组件生命周期

No Silver Bullet

React 生命周期管理 12月日更

从0开始学VUE - 踩坑记录

恒生LIGHT云社区

JavaScript Vue 前端

Android技术分享| 【自习室】自定义View代替通知动画(完)

anyRTC开发者

android 音视频 WebRTC 视频通话 自定义view

尚硅谷微信支付实战教程发布!

@零度

微信支付

带你尝鲜LiteOS 组件EasyFlash

华为云开发者联盟

LiteOS 组件 EasyFlash 嵌入式闪存库 Flash

大数据之面试篇之Hadoop/HDFS/Yarn

@零度

大数据 面试题

养孩子到底有多难?

Tiger

28天写作

0 基础实现简单的Kotlin ListView

阿策小和尚

28天写作 Android 小菜鸟 12月日更

实用机器学习笔记十五:卷积神经网络

打工人!

深度学习 算法 学习笔记 卷积神经网络 12月日更

Go 语言快速入门指南:第六篇 与数据为舞之映射

宇宙之一粟

哈希表 字典 映射 签约计划第二季 12月日更

带你了解几种二进制代码相似度比较技术

华为云开发者联盟

二进制 源代码 二进制代码 二进制代码比较 安全审计

百度搜索中台海量数据管理的云原生和智能化实践

百度Geek说

架构 云原生 后端 百度搜索

资本巨头纷纷入局,DAO究竟有何魔力?

旺链科技

区块链 组织 DAO

常用邮箱申请渠道【小程序专题2】

坚果

小程序 28天写作 12月日更 邮箱

【LeetCode】把二叉搜索树转换为累加树Java题解

Albert

算法 LeetCode 12月日更

以 Kubernetes 的方式来安装运行极狐GitLab Runner

极狐GitLab

Kubernetes runner 极狐GitLab

中科柏诚本地生活赋能金融机构应对内卷危机

联营汇聚

一本用户体验时代的产品生存指南!

博文视点Broadview

io_uring vs epoll ,谁在网络编程领域更胜一筹?

OpenAnolis小助手

网络编程

MySQL数据库升级后如何防止性能下降

@零度

MySQL

红颜更胜儿郎 | 尚硅谷微信支付实战教程发布

编程江湖

前端教程 微信支付开发

云服务器ECS年终特惠,老用户新购优惠低至4折

阿里云弹性计算

云服务器 年终特惠

医疗的客户体验

张老蔫

28天写作

跳出问题限制来解决问题-cacerts证书库的证书丢失的解决

superman

跳出问题解决问题 命题似解决 cacerts证书库

给弟弟的信第14封|人到年纪,自己就是屋檐

大菠萝

28天写作

Linux学习教程从入门到精通:条件判断和流程控制语句If

侠盗安全

Linux 运维 运维工程师 云计算架构师

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