原文发布时间为:2011-05-17 —— 来源于本人的百度文章 [由搬家工具导入]

http://visualstudiogallery.msdn.microsoft.com/40a887aa-f3be-40ec-a85d-37044b239591 

可以这里下载,也可以在 vs的 工具——扩展管理器 里面搜索 安装即可。

引入一些常用的命名空间并使用的方法如下:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Xml.Linq" #>
<#
    var a = "sdfsdf".Select(it => it);
    foreach (var b in a)
    {
#>
   <#= b #>   
<#
}
#>

载入自定义dll,如

<#@ Assembly Name="E:\CodeTest\TestT4\My\bin\Debug\My.dll" #>

<#@ Import Namespace="My" #>

一个模板生成多个文件,范例(详见:http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/)

<#@ template debug="False" hostspecific="True" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq" #>
<#@ assembly name="System.Web" #>
<#@ Assembly Name="System.Web.Mvc" #>
<#@ import namespace="System" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Xml.Linq" #>
<#
    HelloWorld(12);
    SaveOutput("test1.txt");
    HelloWorld(13);
    SaveOutput("test2.txt");
    HelloWorld(14);
    SaveOutput("test3.txt");
 #>

<#+

    void HelloWorld(int i)
    {
        Write("Hello World" + i);
  #>
  This is file <#= i #>
<#+
  }
#>

<#+
    void SaveOutput(string outputFileName)
 {
     string templateDirectory = Path.GetDirectoryName(Host.TemplateFile);
     string outputFilePath = Path.Combine(templateDirectory, outputFileName);
     File.WriteAllText(outputFilePath, this.GenerationEnvironment.ToString());
     this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length);
 }
#>
http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/
      

 中文MSDN这里:http://msdn.microsoft.com/zh-cn/library/dd820620

Tutorials:Creating your first code generatorTroubleshooting code generation errorsDebugging code generation filesCreating reusable code generation templatesCreating complex code generatorsReusing code generators on multiple projects

Here's some of the links from Oleg's blog.

How to create a simple T4 templateHow to use T4 to generate .config filesHow to use T4 to generate Decorator classesHow to use T4 to generate CRUD stored proceduresHow to use T4 to generate strongly-typed navigation class in ASP.NET (by Kirill Chilingarashvili) How to use T4 to generate strongly-typed AzMan wrapperHow to generate multiple outputs from single T4 templateT4 template for generating ADO.NET Entity Framework Stored Procedures  (by David DeWinter) T4 script for generating ADO.NET Entity Framework Views (by ADO.NET team) T4 template for generating LINQ to SQL Data Context (by Damien Guard) T4 template for generating WiX source files (by New Age Solutions) T4 template for generating SQL view from C# enumerationMSBuild task for transforming T4 templates (by Elton Stoneman) T4 template for generating state machines in C# (by Andrew Matthews)

Oleg also has a CodePlex project called T4 Toolbox that is a library of T4 templates that get added to File | New Item.

Also, check out Damien Guard's T4 templates that are a wholesale replacement of code that LINQ to SQL generates.

 

===其他的学习,可以到这个hanselman的博客。

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

t4-editor使用方法 Visual T4的更多相关文章

  1. tangible T4 Editor 2.2.3 for VS2010 / VS2012 / VS2013 Preview

    tangible T4 Editor 2.2.3 for VS2010 / VS2012 / VS2013 Preview angible T4 Editor 2.2.3 plus UML model ...

  2. tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名

    tangible T4 Editor 2.2.3 plus modeling tools for VS 2012 扩展名 tangible T4 Editor 2.2.3 plus modeling ...

  3. Cannot+use+T4+templates+inside+a+.NET+Core+project,NetCore2.0无法使用T4模板解决方法

    Cannot+use+T4+templates+inside+a+.NET+Core+project,NetCore2.0无法使用T4模板解决方法 请见:https://csharp.wekeepco ...

  4. ef code first transform,add ef power tools add-in,add tangible t4 editor for enhancement.

    use ef power tools, as to .edmx file,right click at view, choose generate database from model, then ...

  5. 查看html元素绑定的事件与方法 visual Event 插件

    WEB标准提倡结构.表现和行为相 分离,现在越来越多采用这种表现和行为的方式,但它也为我们开发调试带来一些问题,网页载入一堆JavaScript,,我们很难搞清楚最后在哪些元素的哪个动作绑定了事件,尤 ...

  6. easyui datagrid 动态操作editor 的方法

    easyui本身是不提供这么细节的功能的,需要我们自己拓展下: 在easyui.min.js中扩展: $.extend($.fn.datagrid.methods, { addEditor : fun ...

  7. Visual Studio 2013中引入Web Service的简单方法visual studio 引用 wsdl

    http://blog.csdn.net/wangzhongbo_24/article/details/49954191 Web Service有三种表示方式 三种方式分别为WSDL.Endpoint ...

  8. 编写C语言的两种方法----Visual Studio/CodeBlocks

    1.CodeBlock(安装简单) 参考这个博客的:https://blog.csdn.net/jjjjkkjkk/article/details/80331625?utm_medium=distri ...

  9. T4模板

    T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit. T4文本模板,即一种自定义规则的代码生成器.根据业务模型可生成任何形式的文本文件或供程序调 ...

随机推荐

  1. mysql 5.7 编译安装脚本。

    此脚本尽量运行在centos 服务器上面,用于编译安装mysql 5.7 将此脚本和相应的软件 都放到/usr/local/src 目录下面 由于不能上传附件  所以需要把cmake-3.9.6.ta ...

  2. 爬虫学习(四)——post请求爬取

    百度翻译爬取数据 import urllib.requestimport urllib.parsepost_url = "https://fanyi.baidu.com/sug"h ...

  3. TP5 发送邮件代码

    发送邮箱邮件方法 /** * 系统邮件发送函数 * @param string $tomail 接收邮件者邮箱 * @param string $name 接收邮件者名称 * @param strin ...

  4. python2与python3的区别,以及注释、变量、常量与编码发展

    python2与python3的区别 宏观上: python2:源码不统一,混乱,重复代码太多. python3:源码统一标准,能去除重复代码. 编码上: python2:默认编码方式为ASCII码. ...

  5. 权限组件(15):rbac的使用文档和在业务中的应用

    这里用主机管理系统当做示例. 一.将rbac组件拷贝到项目中. 注意: rbac自己的静态文件.layout.html(被继承的模板).bootstrap.fontsize.公共的css.jquery ...

  6. [转]using components in Cakephp 2+ Shell

    <?php App::uses('AppShell', 'Console/Command'); App::uses('ComponentCollection', 'Controller'); A ...

  7. 基础_String

    String str1="hello"; String str2="hello"; String str3="hello"; String ...

  8. loj2045 「CQOI2016」密钥破解

    CQOI 板子大赛之 pollard rho #include <iostream> #include <cstdio> using namespace std; typede ...

  9. 打开任意位置的webConfig

    请阅读原文:打开任意的配置文件 翻翻ConfigurationManager的签名,有一个方法吸引了我的注意:OpenExeConfiguration(string exePath).看上去我可以把B ...

  10. CI在nginx环境下去掉url中的index.php

    在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...