首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

CodeSmith 教學 (8):CodeTemplate 物件完整解析與進階應用

     編輯:關於ASP.NET

CodeSmith 引擎處理範本時使用多個核心物件,CodeTemplate(類似 ASP.NET Page 類別)是與引擎直接互動的主要介面。

CodeTemplate 核心功能

  • GetFileName():覆寫預設輸出檔名
  • Render():修改輸出內容或輸出至多檔案
  • Events:在引擎處理流程中插入程式碼
  • Response:直接寫入輸出檔案

覆寫 GetFileName() 自訂檔名

<%@ Template Language="C#" TargetLanguage="Text" %>
<%@ Property Name="ClassName" Type="System.String" Default="ClassName" %>
<script runat="template">
public override string GetFileName() {
    return ClassName + ".cs";
}
</script>

覆寫 Render() 輸出至多檔案

<%@ CodeTemplate Language="C#" TargetLanguage="Text" %>
<%@ Import Namespace="System.IO" %>
<script runat="template">
public override void Render(TextWriter writer) {
    StreamWriter file1 = new StreamWriter(@"test1.txt", true);
    this.Response.AddTextWriter(file1);
    StreamWriter file2 = new StreamWriter(@"test2.txt", true);
    this.Response.AddTextWriter(file2);
    base.Render(writer);  // 必須呼叫基類,否則無預設輸出
    file1.Close(); file2.Close();
}
</script>

多檔案輸出示意

覆寫 ParseDefaultValue() 處理複雜預設值

當屬性預設值無法從字串轉換時,覆寫此方法自訂轉換邏輯,引擎處理每個屬性時會呼叫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved