T4模版基础例子

<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="EnvDTE" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.IO" #>
<#@ output extension=".txt" #>

<#
  IServiceProvider serviceProvider = (IServiceProvider)this.Host;
  EnvDTE.DTE dte = (EnvDTE.DTE) serviceProvider.GetService(typeof(EnvDTE.DTE));
#>

<#
  string path = Path.Combine(dte.ActiveDocument.Path,"aa.txt");
  string line = string.Empty;
  using(StreamReader reader = new StreamReader(path))
  {
     line = line = reader.ReadToEnd();
  }
#>

<#=line#>

上面代码的作用是通过T4模版来读取与模版文件同一目录中的aa.txt的内容,并生成文件到指定的文件中。

基础语法解释:

hostspecific="true" ,如果将此特性的值设置为 true,则会将名为 Host 的属性添加到由文本模板生成的类中。

EnvDTE相关信息参考,https://msdn.microsoft.com/zh-cn/library/envdte.aspx

EnvDTE 是包含 Visual Studio 内核自动化的对象和成员的用程序集包装的 COM 库。

时间: 2024-09-30 05:12:57

T4模版基础例子的相关文章

【转】T4模版引擎之基础入门

额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看,可怜的娃啊... T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件. 在 Visual C# 或 Visual

T4模版引擎

T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,“T4 文本模板”是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件. 在 Visual C# 或 Visual Basic 中,控制逻辑编写为程序代码的片段.生成的文件可以是任何类型的文本,例如网页.资源文件或任何语言的程序源代码.现在的VS中只要与代码生成相关的场景基本上都能找T4的身影,比如MVC

EF架构~在T4模版中自定义属性的getter和setter

回到目录 T4模版为我们在ORM操作上提供了便捷,它很方便的可以对实体进行全局性的修改,之前我介绍过通过T4来为属性加默认性,而今天我主要告诉大家如何使用T4模版将getter,setter块改为自己需要的,何为自己需要的?这当然是符合你当前项目规则的,如,我希望监听每个属性的修改过程,这正如之前linq to sql的实体类一样,它用来监听你属性的修改前与修改后,在两个时机都可以分别订阅你自己的事件,多么灵活,呵呵. 来看一下,我项目中实体类最后的效果图 下面是T4模块的属性获取的私有方法代码

T4模版

1,参照一下T4模版 2,赋值上面部分和下面部分公共函数 理解说明 --------------------------------引用命名空间模版 <#=codeStringGenerator.UsingDirectives(inHeader: false)#> | using System; using System.Collections.Generic; --------------------------------遍历类型 foreach (var entity in typeMa

redis+thinkphp5的注册、登陆、关注基础例子

最近初步接触redis,结合thinkphp5与redis,写了一个用户注册的基础例子,用于学习. 这个例子是结合了兄弟连的redis视频,最后两节的内容写的:https://study.163.com/course/courseMain.htm?courseId=265010 这个例子实现了以下功能: (1)用户注册(2)用户登陆(3)redis+thinkphp5的数据的增加,修改,删除(4)redis翻页功能(5)用户的关注列表+粉丝列表 案例需要搭建的环境需求:(1)thinkphp5(

T4模板基础

在此次做教务系统时,用到了许多T4模板来生成代码.那么T4模板到底是干什么的,为什么要使用T4模板呢?这里简单的了解一下它的作用. 在创建一个T4模板时,默认会出现以下代码段: <#@ template debug="false" hostspecific="false" language="C#" #> <#@ assembly name="System.Core" #> <#@ import

t4模版快速入门

语法 主要包括指令.文本块.控制块. 1.指令 指令主要包括template, output, assembly, import, include等类型,用以告诉T4引擎如何编译和运行一个模板.这些指令相当于T4引擎的配置参数. 示例: <#@ template debug="true" hostspecific="true" language="C#" #> 告诉T4引擎控制块用c#编写: langeuage:输出语言,有效值C#.

C# t4模版引擎笔记 引入外部dll

<#@ assembly name="D:\Documents\Downloads\Util\Util\bin\Debug\Util.dll" #> <#@ import namespace="Util" #> 先引入程序集文件 在导入程序集命名空间 这样就可以使用自己编写的辅助函数配合t4生成代码

js基础例子

创建变量 var obj=value; 其中obj是变量名; value表示可能是数字,数组,函数之类的 多变量进行计算 var a1=200,b1='hello',c1=400; var d1=c1-a1;//这样就进行了简单的计算 变量主要的工作是将右边保存给等号左边 console.log(obj);输入obj的内容,其中obj表示可能是数组,可能是函数之类的 str.toString()转换为字符串方式 typeof(obj):查看obj是什么类型 String(c):将c转为字符串方式