• 二、T4模板


         上文带大家见识了下T4,这里呢开始介绍T4模板有关的内容。关于T4模板介绍和使用网上一搜一箩筐,想深入研究的可以自行去找些资料,这里只介绍接下来我们需要使用的一些知识,不会面面俱到的讲T4模板所有的知识。T4模板使用和ASPX文件使用方式近乎类似所以也不需要花太多时间。

    打开TT文件,输入如下代码并保存:

    image

    image

    @ assembly 指明TT模板环境使用的目标程序集

    @ import 指明TT模板环境使用的命名空间

    @ output 指明TT模板输出格式,包括文件后缀编码方式等

    <##>中包含的代码即为控制块

    未包含在<##>中的文本即文本块一般作为静态文本直接输出。

    示例,创建一个1×5的表格并输出为Html格式:

    <#@ template debug="false" hostspecific="false" language="C#" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    <#@ import namespace="System.Text" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ output extension=".html" #>
    <table>
        <tr>
    <#
    for(int i=0;i<5;i++)
    {
    #>
            <td></td>
    <#
    }
    #>
        </tr>
    </table>

    只要将<#@ output extension=".html" #>改成.html即可。从这里可以看出基本和使用ASPX是一样的。除了个别指令需要查看下资料以外,基本会C#就能直接使用。

    说了这么多,T4模板在我们项目开发中的作用貌似未体现出来。下面以一个实例来说明T4模板的具体应用。

    相信绝大多数人对于写实体类是不厌其烦的,没人会傻到手动去写实体类,除非是必要的业务实体。如何根据数据库表自动生成对应实体,这是我们一个简单的需求。下面就是如何通过T4模板实现这个需求(当然VS本身有这个功能,我们只是把这种功能的实现进行还原):

    新建类库项目EntityGenerator,创建一个实体模板文件EntityTemplate.tt,输入如下代码并保存:

    <#@ template debug="false" hostspecific="false" language="C#" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    <#@ import namespace="System.Text" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ output extension=".cs" #>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace EntityGenerator
    {
        public class TestEntity
        {
            /// <summary>
            /// 编号
            /// </summary>
            public string Id { get; set; }
    
        }
    }

    打开生成的EntityTemplate.cs文件可以看到如下内容:

    image

    没错一个完整的类文件已经生成出来,接下来就是怎样让类的属性通过连接数据库来动态生成。这个在下篇将详细演示。因为到目前为止还没有太多的代码量,到后期代码量上来了,我会连同项目一起上传的。

  • 相关阅读:
    剑指 Offer 22. 链表中倒数第k个节点
    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
    Leetcode1450. 在既定时间做作业的学生人数
    Leetcode1572. 矩阵对角线元素的和
    Leetcode 1480. 一维数组的动态和
    Idea连接数据库报错
    Java实现二叉树层次遍历并存入List的方法:从上往下,从左往右
    SpringCloud资源网站
    Java循环对list进行remove
    Java中字符串判空的正确打开方式
  • 原文地址:https://www.cnblogs.com/UltimateAvalon/p/4600569.html
Copyright © 2020-2023  润新知