6

t4 模板相对于 asp.net 中的 Class 文件有什么优势?

就像我们使用 t4 模板生成强类型类一样。我们可以使用 asp.net 中的 c# 类文件来做同样的事情。那么,t4 模板相对于普通类文件有什么优势呢?

任何人都请指出可以在类文件上实现 t4 的场景。

问候, 苏吉思

4

3 回答 3

0

我将从MSDN教程中的这句话开始:

T4 文本模板是文本块和可以生成文本文件的控制逻辑的混合体。控制逻辑以 Visual C# 或 Visual Basic 中的程序代码片段的形式编写。生成的文件可以是任何类型的文本,例如网页、资源文件或任何语言的程序源代码。

T4 模板用于生成动态文本,甚至可以是一个类。实体框架或数据集设计器是设计时代码生成的良好示例,它允许用户以图形方式将实体从数据库拖放到设计器,然后生成所有类以反映您的数据库表。

在后台,一个自定义工具将生成的设计时 XML 转换为 C# 类。这背后的机制类似于 T4 模板的作用。

希望本概述可以让您更好地了解 T4 模板如何提供帮助。

于 2013-05-09T10:49:43.910 回答
0

您可以编写编写其他代码的代码。有些东西你不能重构到一个单一的位置,或者通过 T4(或任何代码生成)更容易集中的东西。

在某些代码中,一个中央驱动程序可能需要多个文件或单个文件中的大量代码才能基于此进行更改。

另一种充分利用它的方法...我使用T4模板编写了一个小 C# 对象,它生成一个.sql文件、a .xsl、a.js.cs文件。全部来自基于一组规则的单个 C# 对象。所以我从一个 c# 模板中生成了几个有用的文件。我可以让它生成创建一个表来保存该类型所需的 .sql。.xsl 或 .xml 用于定义与项目相关的配置值,.js 文件将强类型模型引入 javascript,最后 .cs 用于 c# 中的实际模型。

于 2013-05-11T00:31:45.610 回答
0

简单地说,T4 模板可以根据一些输入数据(如实体框架模型)为您(和其他文件)生成类。这在您必须创建许多具有相同功能的类(如大型实体框架模型的所有实体的类)的情况下非常方便。T4 模板然后只是完成这项工作并在输入发生更改时自动更新创建的类(您也可以在输入文件上运行“自定义工具”来执行 T4 模板)。

T4 模板(当然)可以创建部分类以允许您添加成员(到您创建的类的其他部分)。这样,您可以添加在模板重新创建类时不会被覆盖的功能。

基于 EF 模型生成 POCO 类(默认为 .NET 4.5 中的 EF)的 T4 模板是良好使用 T4 模板的完美示例。另一个示例是为 EF 模型的所有实体类创建视图模型基类(用于 MVVM)的 T4 模板。

于 2013-05-14T07:37:37.690 回答