CodeSmith 基本語(yǔ)法-CodeTemplate 指令

2018-08-12 21:16 更新

基本語(yǔ)法-CodeTemplate 指令

前面的幾篇介紹了使用 CodeSmith 模板自動(dòng)生成代碼和編寫(xiě)代碼模板的基本知識(shí)。也說(shuō)過(guò) CodeSmith最核心的部分是代碼模板,從本篇開(kāi)始介紹 CodeSmith 代碼模板的基本語(yǔ)法,對(duì)于 Asp.Net 程序員來(lái)說(shuō),可以說(shuō)是碰到老朋友了:-) ,CodeSmith 的代碼模板和 Asp.Net Page 幾乎如出一轍。

本篇介紹 CodeTemplate 指令,這個(gè)是模板中唯一必須的聲明,包含一些模板特殊的屬性,包含模板使用的語(yǔ)言、生成的語(yǔ)言和一些對(duì)于模板的描述。比如:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="This is a demo template" %>

參數(shù)的介紹:

  • Language:在開(kāi)發(fā)編寫(xiě)模板時(shí)使用的語(yǔ)言,例如 C#,VB.NET,Jscript 等。
  • TargetLanguage:只是對(duì)模板代碼的一個(gè)分類(lèi),不會(huì)影響生成的代碼語(yǔ)言。是模板的一個(gè)屬性,說(shuō)明模板要基于那種語(yǔ)言生成相應(yīng)的代碼。例如你可以用 CodeSmith 從任何一種語(yǔ)言生成C#代碼。
  • Description:對(duì)于模板的一些說(shuō)明信息,在 CodeSmith Explorer 中選中該模板時(shí)會(huì)顯示這里的信息。
  • Inherits:所有 CodeSmith 模板默認(rèn)繼承自 CodeSmith.Engine.CodeTemplate,這個(gè)類(lèi)提供模板使用的一些基本功能,像 ASP.NET 頁(yè)面的 Page 類(lèi),這些被繼承的類(lèi)的屬性可以被修改,但是這些新的類(lèi)也必須繼承 CodeSmith.Engine.CodeTemplate。CodeSmith 也同樣可以找到這個(gè)類(lèi),當(dāng)然你要引入一個(gè)組件包含這個(gè)類(lèi)。
  • Src:在某些方面 Src 和繼承 Inherits 比較相似,它們都允許你從其他的類(lèi)包含一些功能進(jìn)模板。這兩個(gè)屬性的區(qū)別是,Src 可以讓類(lèi)與你的模板被動(dòng)態(tài)編譯,而 Inherits 僅允許你提供一個(gè)已經(jīng)編譯好的類(lèi)或組件。
  • Debug:可以確定是否在模板中可以包含調(diào)試符號(hào)。如果將這個(gè)屬性設(shè)置為 True,則可以使用System.Diagnostics.Debugger.Break()方法來(lái)設(shè)置斷點(diǎn)。
  • LinePragmas:設(shè)置為 True,模板的錯(cuò)誤將被指向到模板的源代碼。設(shè)置為 False,模板的錯(cuò)誤將被指向到編譯的源代碼。
  • ResponseEncoding 指明代碼模板的輸出文件的編碼方式,可以為 System.Text.Encoding.GetEncoding 支持的所有編碼方式,如果輸出文件已存在并且和要生成的內(nèi)容一致,輸出文件的編碼方式不會(huì)變化。
  • OutputType 指明輸出文件的的輸出模式,可以有三種模式:

Normal: 正常模式,代碼模板輸出內(nèi)容寫(xiě)到正常的輸出流(Response Stream)。 Trace: 輸出內(nèi)容寫(xiě)到 Trace(調(diào)試)輸出流中。 None: 控制代碼模板不輸出任何內(nèi)容,主要用在主-從模板的主模板中,有些情況下無(wú)需主模板輸出任何內(nèi)容。

  • NoWarn 不顯示某些編譯警告,Warning 的 ID 使用逗號(hào)分隔,主要用在編譯 C# 和 VB.Net 時(shí)用到。
  • ClassName 使用 Code-Behind 時(shí)對(duì)應(yīng)的類(lèi)名稱(chēng),類(lèi)似于 Asp.Net 代碼。
  • Namespace 使用 Code-Behind 時(shí)對(duì)應(yīng)的類(lèi)命名空間名稱(chēng)。
  • Encoding 代碼模板自身使用的編碼方式,缺省為 UTF-8.
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)