簡體   English   中英

如何使用從解決方案中現有基礎 class 繼承的 T4 模板生成 class?

[英]How to produce a class using T4 template that inherits from an existing base class in the solution?

我有一個抽象的枚舉 class ,我想在 T4 模板中繼承它。 抽象 class 設置了 class 結構。 它還從數據庫中提取值。

例如,這就是我希望 T4 生成的內容:

public class Region : Enumeration
{
  
    public static readonly Region Northeast = new Region(1, "Northeast", "1.jpg");
    public static readonly Region Midwest = new Region(2, "Midwest", "2.jpg");
    public static readonly Region South = new Region(3, "South", "3.jgp");
    public static readonly Region West = new Region(4, "West","4.jpg");
    public Region(int id, string name, string imageName)
        : base(id, name, imageName)
    {
    }
}

這是我的第一個 T4 模板,所以我在這里做一些假設。 如果我正確理解了該過程,我必須在模板中創建代碼來遍歷值列表並輸出文本,在本例中:“public static readonly Region Northeast = new Region(1, "Northeast", "1 .jpg");" 對於列表中的每個值。

我的問題是,我是否應該將獲取 db 值的代碼放在功能 function 中,調用 function 然后在 T4 模板的代碼塊中迭代? 另外我假設要寫出文本,需要寫的文本放在代碼塊之前/之后?

提前致謝

在閱讀了 T4 模板后,我能夠回答我自己的問題。 這是我的模板:

在此處輸入圖像描述

行:IList<WebAPIMVC.Models.Region> region = WebAPIMVC.APIClasses.ApplicationSetup.GetRegions();

使用以下方法從數據庫中檢索數據:

申請方法

注意:我在這里使用的是 EF6,無法像通常那樣創建上下文。 必須使用嵌入在代碼中的連接字符串創建上下文,因為未訪問 web 配置。 然后我調用了數據庫並返回了一個對象列表。

模板遍歷對象並創建所需的代碼行。 我最終得到了我需要的東西:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM