.NET T4模板 简单介绍T4

本文介绍了.NET中的T4模板,这是一种代码生成引擎,用于在Visual Studio中生成文本文件。T4模板分为设计时和运行时两种类型,主要结构包含指令块、文本块、代码语句块、表达式块和类特性块。文章详细讲解了每个部分的功能和用法,是理解T4模板的入门指南。
摘要由CSDN通过智能技术生成

T4模板简单介绍

      T4 ,全称为“Text Template Transformation Toolkit”是微软官方在Visual Studio 2008中开始使用的代码生成引擎。

      T4文本模板"是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件。在Visual C#或Visual Basic中,控制逻辑编写为程序代码的片段。生成的文件可以是任何类型的文本,例如网页、资源文件或任何语言的程序源代码。现在的VS中只要与代码生成相关的场景基本上都能找T4的身影,比如MVC的视图模板,Entity Framework的DataContext模板等等。

T4模板的主要2个类型

1、设计时模板
在Visual Studio中执行设计时T4文本模板,以便定义应用程序的部分源代码和其他资源。
通常,您可以使用读取单个输入文件或数据库中的数据的多个模板,并生成一些.cs、.vb或其他源文件。每个模板都生成一个文件。在Visual Studio或MSBuild内执行它们。
若要创建设计时模板,请向您的项目中添加“文本模板”文件。另外,您还可以添加纯文本文件并将其“自定义工具”属性设置为“TextTemplatingFileGenerator”。
2、运行时模板
可在应用程序中执行运行时T4文本模板(“预处理过的”模板)以便生成文本字符串(通常作为其输出的一部分)。
若要创建运行时模板,请向您的项目中添加“已预处理的文本模板”文件。另外,您还可以添加纯文本文件并将其“自定义工具”属性设置为“TextTemplatingFilePreprocessor”

T4模板的基本结构主要分为5类:

1.指令块:(Directive Block)
2.文本块:(Text Block)
3.代码语句块:(Statement Block)
4.表达式块:(Expression Block)
5.和类特性块:(Class Feature Block)

在ASP.NET Core 3.1中使用T4模板生成Repository的步骤如下: 1. 创建T4模板文件:在Visual Studio中右键单击解决方案或项目文件夹,选择“添加”->“新建项”->“代码”->“代码生成”->“T4文本模板”,命名为“RepositoryTemplate.tt”。 2. 打开RepositoryTemplate.tt文件,在文件中添加必要的引用和命名空间: ``` <#@ template language="C#" debug="true" hostspecific="true" #> <#@ assembly name="System.Core" #> <#@ assembly name="Microsoft.CSharp" #> <#@ assembly name="System.Data" #> <#@ assembly name="System.Data.SqlClient" #> <#@ assembly name="System.IO" #> <#@ import namespace="System" #> <#@ import namespace="System.Collections.Generic" #> <#@ import namespace="System.Data" #> <#@ import namespace="System.Data.SqlClient" #> <#@ import namespace="System.IO" #> ``` 3. 定义数据模型类:在RepositoryTemplate.tt文件中定义数据模型类,可以根据实际需求进行修改: ``` <# public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } } #> ``` 4. 生成Repository类:在RepositoryTemplate.tt文件中添加生成Repository类的代码: ``` <# public class ProductRepository { private readonly string connectionString; public ProductRepository(string connectionString) { this.connectionString = connectionString; } public void Add(Product product) { using (SqlConnection connection = new SqlConnection(connectionString)) { string query = "INSERT INTO Products (Id, Name, Price) VALUES (@Id, @Name, @Price)"; SqlCommand command = new SqlCommand(query, connection); command.Parameters.AddWithValue("@Id", product.Id); command.Parameters.AddWithValue("@Name", product.Name); command.Parameters.AddWithValue("@Price", product.Price); connection.Open(); command.ExecuteNonQuery(); } } // 其他操作方法... } #> ``` 5. 保存并运行T4模板:保存RepositoryTemplate.tt文件,右键单击文件,选择“运行自定义工具”或“生成输出”选项,生成Repository类。 6. 使用生成的Repository类:在ASP.NET Core项目中使用生成的Repository类,示例代码如下: ``` string connectionString = "Your Connection String"; ProductRepository repository = new ProductRepository(connectionString); var product = new Product { Id = 1, Name = "Example Product", Price = 9.99m }; repository.Add(product); ``` 以上就是使用T4模板在ASP.NET Core 3.1中生成Repository的步骤。通过这种方法,可以减少手动编写和重复的工作,提高代码生产效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值