.NET T4 生成文件(一)简单介绍T4

模块介绍

T4模板的基本结构可以分成5类:
指令块:(Directive Block)
文本块:(Text Block)
代码语句块:(Statement Block)
表达式块:(Expression Block)
和类特性块:(Class Feature Block)

一、指令块(Directive Block)

指令块通过<#@…#>表示。
必要的指令为:<#@ template … #> 用于定义模板的基本属性。
常用的指令有:<#@ assembly … #>用于引用程序集、<#@ import … #>用于引入命名空间等

1.<#@template #>:
<#@ template language=“C#” #>表示该编程语言为C#。
<#@template #> 模板属性定义
2.<#@ assembly #>:
如<#@ assembly name=“System.Core” #> 表示引用Core的程序集。
<#@ assembly #> 程序集引入
3.<#@ import #>:
如<#@ import namespace=“System.Linq” #> 表示引用了Linq这个命名空间。
<#@ import #>引入命名空间
4.<#@output extension=""#>
如<#@output extension=".cs"#>,那么你输出的就是.cs文件;
如<#@output extension=".txt"#>,那么你输出的就是.txt文件。
Extension是扩展名的意思。

二、文本块(Text Block)

文本块就是直接原样输出的静态文本,不需要添加任何的标签。从指令块结束到第一个“<#”标签之间的内容就是一段静态的文本块,定义在<#…#>、<#+…#>、<#=…#>之间的都不属于文本块。
在这里插入图片描述

三、代码语句块(Statement Block)

代码语句块通过<#…#>的形式来表示,中间是一段使用相应的编程语言编写的程序代码,我们可以通过代码语句块控制文本的转化流程。由于我们使用的是.NET,所以在这里代码语句块的作用主要就是写C#代码,示例如下:
在这里插入图片描述
执行后生成如下图:
在这里插入图片描述

平时能在VS里写的代码,都可以在<# #>里表示。

四、表达式块(Expression Block)在这里插入图片描述

在这里插入图片描述
通过读取数据库的语句,最后生成出如下的内容:
在这里插入图片描述

五、类特性块(Class Feature Block)

类特性块通过<#+…#>的形式来表示,它可以用来定义供调用的方法。
如果文本转化需要一些比较复杂的逻辑,我们需要将其封装成一个单独的方法,甚至是封装成一个单独的类,那就要用到类特性块了,示例如下:
在这里插入图片描述
执行后生成如下图:
在这里插入图片描述
感谢您的观看!下一章会更新如何通过连接数据库,通过表名生成实体文件!
下集更精彩!期待关注!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在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、付费专栏及课程。

余额充值