ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

动软模板使用流程

2019-10-16 17:55:15  阅读:197  来源: 互联网

标签:文件 包含 int 流程 指令 动软 文本 模板


模板的大体分为5块内容:模板指令声明,代码语句块,表达式块,类功能控制块,文本块输出。下面我们分别来介绍一下这5块内容的语法和使用说明。

  1. 模板指令声明块 <#@  #>

和ASP.NET页面的指令一样,它们出现在文件头,通过<#@…#>表示。其中<#@ template …#>指令是必须的,用于定义模板的基本属性。

(1)    模板指令

<#@ template [language="VB"] [hostspecific="true"] [debug="true"] [inherits="templateBaseClass"] [culture="code"] [compilerOptions="options"] #>

例如

<#@ template language="C#v3.5" hostSpecific="true" debug="true" #>

Language  这里可以指定模板使用的语言。

hostSpecific="true" 表示是否使用特定的host,host里面包含了模板使用的各种对象。

注意

所有属性值必须用双引号都括起来。如果值本身包含引号,则必须使用 \ 字符对这些引号进行转义。 指令通常是模板文件或包含的文件中的第一个元素。

 

(2)    参数指令

<#@ parameter type="Full.TypeName" name="ParameterName" #>

 

(3)    输出指令

<#@ output extension=".fileNameExtension"  encoding="encoding"  #>

  • output extension=".cs"   指定生成文件的扩展名。

encoding="encoding"    指定生成文件的编码。

 

(4)    程序集指令

<#@ assembly name="System.Data" #>

用于添加程序集引用,如果要使用第三方程序集,那么最好在项目中添加引用。

注:您应使用绝对路径的名称,或者路径名称中使用标准的宏的名称。

例如: <#@ assembly name="$(SolutionDir)library\MyAssembly.dll" #>

 

(5)    导入指令

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

导入要使用的命名空间,注意:这里的命名空间必须要在前面指定的程序集里面找得到的,比如我指定命名空间"System.Data","System.Data.Common",这些在程序集System.Data中都有的

 

(6)    包含指令

<#@ include file="test.tt" #> 导入模板,类似Html的include用法

include 指令插入其他模板文件的文本。

例如,下面的指令插入 test.txt 的内容。 <#@ include file="c:\test.txt" #>

在处理时,被包含内容就像是包含文本模板的组成部分一样。 不过,即使 include 指令后跟普通文本块和标准控制块,也可以包含编写有类功能块 <#+...#> 的文件

 

  1. 代码语句块: <#   #>

在模板文件中,可以混合使用任意数量的文本块和标准控制块。中间是一段通过相应编程语言编写的程序调用,我们可以通过代码语句快控制文本转化的流程。

注意:不能在控制块中嵌套控制块。

<#@ output extension=".txt" #>

<#

    for(int i = 0; i < 4; i++)

    {

#>

 Hello!

<#

    }

#>

 

 

  1. 表达式块:<#=  #>

表达式控制块计算表达式并将其转换为字符串。 该字符串将插入到输出文件中。

例如: <#= 2 + 3 #>

表达式可以包含作用域中的任何变量。 例如,下面的块输出数字行:

<#@ output extension=".txt" #>

<#

    for(int i = 0; i < 4; i++)

    {

#>

This is hello number <#= i+1 #>: Hello!

<#

    }

#>

 

 

  1. 类功能控制块:<#+  #>

如果文本转化需要一些比较复杂的逻辑,我们需要写在一个单独的辅助方法中,甚至是定义一些单独的类,我们就是将它们定义在类特性块中。类功能控制块定义属性、方法或不应包含在主转换中的所有其他代码。 类功能块常用于编写帮助器函数。 通常,类功能块位于单独的文件中,这样它们可以包含在多个文本模板中。 类功能控制块以 <#+ ... #> 符号分隔。

例如,下面的模板文件声明并使用一个方法:

<#@ output extension=".txt" #>

Squares:

<#

    for(int i = 0; i < 4; i++)

    {

#>

    The square of <#= i #> is <#= Square(i+1) #>.

<#

    }

#>

That is the end of the list.

<#+  // Start of class feature block

private int Square(int i)

{

    return i*i;

}

#>

 

类功能必须编写在文件末尾。不过,即使 include指令后跟标准块和文本,也可以 <#@include #> 包含类功能的文件。例如下面代码则会报错:

List of Squares:

<#

   for(int i = 0; i < 4; i++)

   {  WriteSquareLine(i); }

#>

End of list.

<#+  // Class feature block

private void WriteSquareLine(int i)

{

#>

   The square of <#= i #> is <#= i*i #>.

<#  

}

#>

摘要:http://www.maticsoft.com/help/Template.htm#_Toc292191122  

标签:文件,包含,int,流程,指令,动软,文本,模板
来源: https://www.cnblogs.com/searchbaidu/p/11687182.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有