日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

t4b代码生成_用T4模板实现简单的代码生成器

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 t4b代码生成_用T4模板实现简单的代码生成器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近想在項目中使用一個代碼生成器,用T4模板實現了,還是蠻方便的。關于T4模板的介紹可以看下園中相關系列文章T4的介紹,創建運行時模板。里面介紹蠻詳細的。

代碼生成器界面如下,比較簡單,我這里是通過傳入實體類名稱生成對應層的代碼:

添加預處理的模板 IDal.tt(其他類似),代碼如下:

View Code

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Text;

using?Model;

namespace?IDal

{

public?interface?IDal?:?IRepository<>

{

}

}

同時新建一個IDal的部分類:

View Code

using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Web;

namespace?CodeBuilder.Template

{

public?partial?class?IDal

{

public?string?ClassNames

{

get;

set;

}

public?IDal(string?_ClassNames)

{

this.ClassNames?=?_ClassNames;

}

}

}

default.aspx.cs主要代碼:

View Code

#region?通過反射取得要生成的類

Assembly?ass?=?Assembly.Load("Template");?//獲取程序集????????????????????????Type?myclass?=?null;

MethodInfo?mymethod?=?null;

foreach?(var?name?in?list)

{

foreach?(ListItem?item?in?chkboxType.Items)

{

if?(item.Selected)

{

Type[]?mytypes?=?ass.GetTypes();

foreach?(Type?t?in?mytypes)

{

if?(t.Name?==?item.Text)

{

myclass?=?t;

break;

}

}

Object?obj?=?Activator.CreateInstance(myclass,?name);

mymethod?=?myclass.GetMethod("TransformText");?//取TransformText()函數????????????????????????????????????String?pageContent?=?mymethod.Invoke(obj,?null).ToString();

//創建文件????????????????????????????????????File.AppendAllText(dirpath?+?@"\"?+?string.Format(item.Value,?name)?+?".cs",?pageContent);

}

}

}

#endregion

#region

這里通過反射查找所有要生成的模板文件并創建文件,通過myclass.GetMethod("TransformText")調用TransformText方法,取得要生成的文件中內容。

我這里生成的代碼主要是為了符合自己項目的需要,實際使用中可以根據需要擴展如通過數據庫表生成model,存儲過程等

總結

以上是生活随笔為你收集整理的t4b代码生成_用T4模板实现简单的代码生成器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。