CodeSmith 基本語法-CodeTemplate 指令

2018-08-12 21:16 更新

基本語法-CodeTemplate 指令

前面的幾篇介紹了使用 CodeSmith 模板自動生成代碼和編寫代碼模板的基本知識。也說過 CodeSmith最核心的部分是代碼模板,從本篇開始介紹 CodeSmith 代碼模板的基本語法,對于 Asp.Net 程序員來說,可以說是碰到老朋友了:-) ,CodeSmith 的代碼模板和 Asp.Net Page 幾乎如出一轍。

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

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

參數(shù)的介紹:

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號