• T4模板_入门


    T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记

    更详细的资料参见:

    MSDN: http://msdn.microsoft.com/zh-cn/library/bb126445.aspx

    你必须懂的T4模板:深入浅出:http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html

    准本工作:

     T4模板是没有颜色高亮提示的,我们可以安装vs支持的插件,我安装的是  T4 Editor,当然还有其他比如 Visual T4等,

     T4 Editor下载地址:http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html

    一 .T4模板分类

         T4模板分为 文本模板 和 运行时文本模板,其中文本模板 程序的源代码在程序编译前就被使用(写代码时开始编译),可以直接转换成项目的程序源码,运行时文本模板,即运行时开始编译,生成各式文档。

    下面以 运行时文本模板 为例创建一个简单的实例:

    其中RuntimeTextTemplate1.tt为创建的运行时文本模板,在“添加-新建项”中可以找到“运行时文本模板”

    创建好的空的RuntimeTextTemplate1.tt有一些初始代码

    <#@ template language="C#" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    <#@ import namespace="System.Text" #>
    <#@ import namespace="System.Collections.Generic" #>
    <#@ output extension=".html"#>
    <#@ template language="C#" #> 指定使用的编程语言是C#,<#@ output extension=".html"#>指定输出的是html文件,其他的暂时不管,语法暂时不考虑,接着后面添加简单的测试代码:
    <h3>运行时文本模板</h3>
    <div>
    hello World
    </div>

    下面我们查看这个模板,创建一个web窗体应用程序,WebPrintTest.T4,在index的Page_Load()中加入一下代码

    RuntimeTextTemplate1 T4= new RuntimeTextTemplate1();
    string str = T4.TransformText();
    print.InnerHtml = str;

    就可以在index.aspx中显示生成的模板,

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="WebPrintTest.T4.Index" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="print" runat="server">    
        </div>
        </form>
    </body>
    </html>

    查看一下:

    运行时文档模板会产生一个类(以模板名称命名),查看一下部分代码:

     二 .调试

            如果要调试T4文本模板文件,首先将模板指令<#@ template #> 的debug特性值设置为true,然后倒入命名空间

    <#@ import namespace="System.Diagnostics" #>

            若要在模板执行的特定点启动调试器,请插入对 Debugger.Launch() 的调用。 若要在后续的点处中断执行,请插入对 Debugger.Break() 的调用,【F10】单步调试

    调试过程:

  • 相关阅读:
    attr 修改IMG src
    64转2
    :eq
    DOM0和D0M2级事件
    c's's透明度
    span标签 宽度无效解决方案
    CSS 点击事件
    input点击后的 默认边框去除
    js
    CSS 的 ID 和 Class 有什么区别,如何正确使用它们。
  • 原文地址:https://www.cnblogs.com/ashleyboy/p/3713543.html
Copyright © 2020-2023  润新知