精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解模版引擎XTemplate與代碼生成器XCode(源碼)

移動開發 iOS
模版引擎XTemplate與代碼生成器XCode是本文要介紹的內容,主要是來學習模版引擎XTemplate是一個仿T4設計的引擎,功能上基本與T4一致,來看詳細內容。

模版引擎XTemplate與代碼生成器XCode是本文要介紹的內容,主要是來學習模版引擎XTemplate是一個仿T4設計的引擎,功能上基本與T4一致(模版語法上完全兼容T4,模版頭指令部分兼容)。

自己設計模版引擎,就是為了代碼生成器、網站模版、郵件模版等多種場合,也就是要能拿出來單獨使用、功能強大并且容易控制的。T4是個很好的引擎,但是它的設計基本上傾向于vs,幾乎不顧別的場合。

XTemplate特點如下:

1、完全使用C#作為模版語言。跟ASP、ASP.Net頁面的解析一樣,把<##>標簽外的文本內容當作字符串,用一個StringBuilder,標簽內作為C#原生代碼,拼在一起編譯,進行模版替換時,實質上就是執行編譯后的程序集,這就是XTemplate的核心原理!網絡上現有的許許多多模版引擎,要么采用標簽替換,要么自創模版語言,這些都增加了使用者的學習難度。XTemplate使用C#作為模版語言,這個世界安靜了!

2、支持“調試”。不是運行時調試,而是XTemplate能夠把模版編譯的中間類文件以及程序集等輸出,方便檢查錯誤。如果把模版編譯后的程序集保存下來,可以在沒有模版文件的情況下直接使用模版功能。

3、不需要ASP.Net支持。有部分模版引擎,是模擬一個ASP.Net服務器,然后以ASP.Net作為模版來實現,這就要求有一個ASP.Net服務器作為宿主,限制了模版引擎的使用范圍。

4、支持批量編譯??梢园讯鄠€模版放入模版處理器,進行一次編譯(所有模版類都編譯到一個程序集里面去)。

5、支持類成員。模版內容默認情況下將會統一編譯到一個類的Render方法里面去,但是有時候我們需要給這個類增加一些屬性和方法,此時可以使用<#! #>標簽,序數為單數表示開始,序數為偶數表示結束,所以不限制類成員代碼的位置(T4要求只能寫在模版的***面)。

6、支持自定義基類。默認情況下,所有編譯生成的模版類都繼承自TemplateBase,你也可以創建自己的模版基類,然后在模版頭通過指令,或者通過外部宿主指定自定義的模版基類,模版中可以直接使用自定義模版基類的成員(因為繼承嘛),比如代碼生成器XCode中的XCodeBase。

7、自動引用宿主程序集。T4在使用上***的麻煩就是引用外部程序集和命名空間,畢竟不是在vs里面編寫C#代碼。XTemplate在編譯的時候,自動引用宿主(就是調用者,比如XCode)的所有應用程序集,同時引用大部分常用的明明空間,因為這樣,生成的類很臃腫,但是編譯的時候,編譯器會自動去掉無用的引用。XTemplate從完成到現在為止,還沒有用過引用程序集和命名空間的問題,因為一般來說,模版中需要用到的程序集,宿主里面一般都有用到,非常符合我們的使用習慣。

8、與宿主的良好交互。在XTemplate中,編譯的模版程序集是直接加載在默認域,這點與T4不同,T4會新建一個域,應該是為了防止模版代碼弄臟默認域的數據吧(比如干擾vs運行)。因為在同一個域,XTemplate與宿主進行交互,就不需要“***”(跨域)了。XTemplate的處理過程分為分析、編譯和執行三步,都可以由外部控制,比如有時候我們只是需要檢查一下模版的語法,只需要檢查一下模版語法是否正確,這個時候編譯一下就可以了。

9、更多的特點需要大家來發現!

XCode使用XTemplate代碼(后面有XCode的項目代碼):

  1. Dictionary<String, Object> data = new Dictionary<string, object>();  
  2. data["Config"] = Config;  
  3. data["Tables"] = Tables;  
  4. data["Table"] = table;  
  5.  
  6. // 聲明模版引擎  
  7. Template tt = new Template();  
  8. Template.Debug = Config.Debug;  
  9. foreach (String item in ss)  
  10. {  
  11.     if (item.EndsWith("scc", StringComparison.Ordinal)) continue;  
  12.  
  13.     String tempFile = item;  
  14.     if (!Path.IsPathRooted(tempFile) && !tempFile.StartsWith(TemplatePath, StringComparison.OrdinalIgnoreCase))  
  15.         tempFile = Path.Combine(TemplatePath, tempFile);  
  16.  
  17.     String content = File.ReadAllText(tempFile);  
  18.  
  19.     // 添加文件頭  
  20.     if (Config.UseHeadTemplate && !String.IsNullOrEmpty(Config.HeadTemplate))  
  21.         content = Config.HeadTemplate + content;  
  22.  
  23.     tt.AddTemplateItem(item, content);  
  24. }  
  25. tt.Process();  
  26.  
  27. // 編譯模版  
  28. tt.Compile();  
  29.  
  30. List<String> rs = new List<string>();  
  31. foreach (String item in ss)  
  32. {  
  33.     if (item.EndsWith("scc", StringComparison.Ordinal)) continue;  
  34.  
  35.     //String content = RenderFile(table, item, data);  
  36.     String content = tt.Render(item, data);  
  37.  
  38.     // 計算輸出文件名  
  39.     String fileName = Path.GetFileName(item);  
  40.     String className = CutPrefix(table.Name);  
  41.     className = FixWord(className);  
  42.     String remark = table.Description;  
  43.     if (String.IsNullOrEmpty(remark)) remark = ENameToCName(className);  
  44.     if (Config.UseCNFileName && !String.IsNullOrEmpty(remark)) className = remark;  
  45.     fileNamefileName = fileName.Replace("類名", className).Replace("類說明", remark).Replace("連接名", Config.EntityConnName);  
  46.  
  47.     fileName = Path.Combine(OuputPath, fileName);  
  48.     File.WriteAllText(fileName, content, Encoding.UTF8);  
  49.  
  50.     rs.Add(content);  

XTemplate設計圖(我喜歡先做圖再編碼)單擊放大:

模版引擎XTemplate與代碼生成器XCoder

小結:詳解模版引擎XTemplate與代碼生成器XCode(源碼)的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: CSDN博客
相關推薦

2017-03-20 17:49:21

Java Web模板代碼

2023-05-17 16:02:00

CSS工具代碼生成器

2021-07-23 11:24:54

Create Inc開源G代碼生成器

2015-08-25 15:54:17

程序員代碼生成器

2023-01-06 07:52:52

代碼生成器開發

2024-11-01 15:51:06

2021-12-10 09:45:19

生成器配置代碼

2012-03-30 09:31:44

WEBCSS

2021-10-29 11:25:41

代碼編程語言Java

2020-10-20 09:53:11

代碼IDEA生成器

2010-09-07 16:31:17

SQL語句insert

2011-12-23 13:42:05

JavaScript

2021-04-22 21:15:38

Generator函數生成器

2017-07-01 16:02:39

分布式ID生成器

2015-08-25 11:07:58

2025-01-23 08:36:27

CSS開發工具

2024-06-12 13:40:58

2009-07-03 09:29:24

KeelKit

2022-03-10 10:48:30

PolyCoder自動代碼生成器語言

2015-04-22 09:36:27

JAVA代碼生成器
點贊
收藏

51CTO技術棧公眾號

免费看的av网站| 欧美精品在线一区| 国产在线观看免费av| 国内精品偷拍| 欧美性极品少妇| 91国在线高清视频| 国产一区精品| 成人手机电影网| 国产精品久久久久久久app| 青青草手机在线视频| jizzjizz欧美69巨大| 日韩欧美国产1| 亚洲狼人综合干| 欧美1234区| 国产精品萝li| 欧美人与物videos另类| av官网在线观看| 日韩黄色免费电影| 欧美成人精品三级在线观看| 好吊视频在线观看| 波多野结衣在线一区二区| 欧美色网一区二区| 精品这里只有精品| 丁香花高清在线观看完整版| 国产精品美女久久久久aⅴ国产馆| 激情伦成人综合小说| 国产乱淫av免费| 日本亚洲最大的色成网站www| 91产国在线观看动作片喷水| 国产精品老熟女一区二区| 精品国产一区探花在线观看| 日韩av一区二区在线观看| 四川一级毛毛片| 久久精品资源| 在线视频中文字幕一区二区| 凹凸国产熟女精品视频| 久久久久黄久久免费漫画| 亚洲免费在线播放| 一区二区三区免费看| 国产午夜在线观看| 久久天堂av综合合色蜜桃网| 粉嫩av一区二区三区免费观看| 中文在线免费看视频| 日韩精品五月天| 青青久久av北条麻妃黑人| 国产成人精品一区二三区| 伊人影院久久| 性欧美在线看片a免费观看| 在线免费观看亚洲视频| 最新国产精品| 欧美理论电影在线播放| 欧美爱爱小视频| 欧美福利电影在线观看| 九九久久综合网站| 免费在线观看黄色av| 红桃视频国产一区| 69久久夜色精品国产69乱青草| 国产第一页在线播放| 国产乱码精品| 日本国产一区二区三区| 99re这里只有精品在线| 青青草国产精品97视觉盛宴| 国产精品一区二区三区免费视频| 在线观看毛片网站| 极品少妇xxxx精品少妇偷拍| 亚洲free性xxxx护士hd| 亚洲黄色在线观看视频| av亚洲精华国产精华精| 欧美精彩一区二区三区| av黄色在线观看| 亚洲嫩草精品久久| 欧美一区二区激情| 不卡一二三区| 欧美日韩日日摸| 91丝袜超薄交口足| 大型av综合网站| 日韩精品视频免费在线观看| 在线免费观看视频| 91精品99| 青青久久av北条麻妃黑人| 中文字幕久久网| 成人午夜大片免费观看| 免费试看一区| 成人在线播放免费观看| 亚洲第一成人在线| 欧美三级理论片| 8x国产一区二区三区精品推荐| 亚洲精品美女在线观看| 亚洲激情图片网| 国内自拍一区| 国产精品pans私拍| 精品国产18久久久久久| 99re6这里只有精品视频在线观看| 视频一区二区在线| 欧美激情成人动漫| 欧美午夜精品免费| 精品人妻在线视频| 成人在线免费观看91| 久久久久久九九九| 欧美一区二区三区不卡视频| 国产精品白丝av| 色综合久久久久久久久五月| 久久www人成免费看片中文| 欧美视频第二页| 男人的天堂影院| 婷婷综合久久| 日韩av快播网址| 蜜臀av午夜精品| 成人免费在线播放视频| 日韩欧美精品在线观看视频| 视频免费一区二区| 最近2019中文免费高清视频观看www99 | 99久精品国产| 久久天天东北熟女毛茸茸| 欧美18av| 亚洲精选一区二区| 免费网站观看www在线观| 日韩不卡在线观看日韩不卡视频| 国产日韩亚洲精品| 欧美r级在线| 欧美在线影院一区二区| 亚洲国产精品成人综合久久久| 欧美伊人影院| 3d动漫精品啪啪一区二区三区免费| 免费一级在线观看播放网址| 午夜精品久久一牛影视| 极品人妻一区二区| 天天做天天爱天天爽综合网| 国产精品国模在线| 欧美挠脚心网站| 精品国产鲁一鲁一区二区张丽| 韩国三级hd中文字幕有哪些| 综合一区在线| 91免费福利视频| 免费大片黄在线| 欧美色网站导航| 日本精品久久久久中文| 免费高清成人在线| 日韩久久在线| 777午夜精品电影免费看| 亚洲欧洲偷拍精品| 亚洲 欧美 日韩 在线| 99国产欧美另类久久久精品| 日韩欧美一区二| 中文精品一区二区| 欧美一区二区.| 欧美精品久久久久久久久久丰满| 精品久久久一区| 成都免费高清电影| 老色鬼久久亚洲一区二区| 久久国产精品 国产精品| 天堂电影一区| 日韩久久精品电影| 91丝袜一区二区三区| 久久九九全国免费| 国产精品久久a| 真实国产乱子伦精品一区二区三区 | 日操夜操天天操| 成人国产精品免费网站| 少妇人妻在线视频| 综合综合综合综合综合网| 国产成人综合av| 永久av在线| 欧美一区二区免费| 精品少妇一二三区| 99re热视频这里只精品| 欧美日韩在线观看不卡| 日韩一区二区在线| 波多野结衣成人在线| 丁香花在线影院| 亚洲天堂久久av| 91theporn国产在线观看| 一区二区在线电影| 鲁大师私人影院在线观看| 欧美aaaaaa午夜精品| 国产大尺度在线观看| 99re热精品视频| 国产成人午夜视频网址| 免费高清在线观看| 亚洲黄色成人网| 中文字幕免费视频观看| 亚洲乱码一区二区三区在线观看| 国模大尺度视频| 久久国产日韩| 天天干天天操天天干天天操| 农村少妇一区二区三区四区五区| 国产精品1区2区在线观看| 超碰免费公开在线| 日韩国产欧美区| 国产日韩欧美视频在线观看| 欧美日韩国产丝袜另类| 日韩在线一卡二卡| 成人avav影音| 午夜一区二区视频| 99精品免费视频| 一区二区三区在线观看www| 欧美日韩破处| 91丨九色丨国产在线| 丝袜老师在线| 欧美日韩第一页| av在线电影观看| 日韩av综合中文字幕| 国产麻豆免费观看| 日本精品一区二区三区高清| 久久免费公开视频| 国产精品五月天| 国产ts丝袜人妖系列视频| 国产精品影视网| 777一区二区| 午夜在线一区二区| 久青草视频在线播放| 日韩久久久久| 麻豆精品蜜桃一区二区三区| 亚洲精品v亚洲精品v日韩精品| 国产精品露脸自拍| 华人av在线| 欧美极品少妇xxxxⅹ免费视频| 男人天堂手机在线| 亚洲日本aⅴ片在线观看香蕉| 成人午夜视频一区二区播放| 69久久99精品久久久久婷婷| 波多野结衣视频网址| 欧美日韩在线影院| 国产一级一级片| 一区二区三区欧美激情| www成人啪啪18软件| 国产亲近乱来精品视频| 精品无码人妻一区| www.欧美亚洲| 亚洲激情 欧美| 国产suv精品一区二区三区| 91香蕉国产线在线观看| 久久99精品久久久久久动态图 | 国产 日韩 欧美在线| 在线国产一区二区| 最新不卡av| 天天色综合色| 国产a级片免费看| 99精品视频在线| 男同互操gay射视频在线看| 91综合在线| 吴梦梦av在线| 一区二区三区国产精华| 蜜桃视频成人在线观看| 亚洲精品97| 久久男人资源站| 亚洲毛片视频| 国产免费毛卡片| 丝袜a∨在线一区二区三区不卡| 哪个网站能看毛片| 久久久久久久高潮| 一道本视频在线观看| 麻豆精品一区二区三区| 久久久久久久久久毛片| 国产精品18久久久久久久久久久久 | 99精品视频在线播放观看| 精品少妇人妻av一区二区三区| 成人国产免费视频| wwwwxxxx国产| 中文一区二区在线观看| 一级性生活免费视频| 亚洲一线二线三线久久久| 国产无码精品久久久| 欧美日韩在线视频一区| 黄色片视频免费| 欧美精品乱码久久久久久| 草逼视频免费看| 日韩精品在线视频| 91在线不卡| 欧美成人精品h版在线观看| 超碰在线公开| 国产精品jvid在线观看蜜臀| 成人豆花视频| 精品国产一区二区三区麻豆小说 | 国产成人精品在线| 国产精品久久久久久吹潮| 91美女片黄在线观看游戏| 露出调教综合另类| 日日夜夜精品网站| 一区二区在线| 国内性生活视频| 久久精品国产精品亚洲精品| 伊人久久一区二区三区| 久久久www成人免费毛片麻豆| 人人干在线观看| 午夜日韩在线电影| 亚洲一级视频在线观看| 亚洲国内精品视频| 求av网址在线观看| 97香蕉超级碰碰久久免费的优势| 草民电影神马电影一区二区| 国产高清一区二区三区| 欧美日韩国产在线观看网站 | 精品va天堂亚洲国产| yourporn在线观看视频| 久久久亚洲国产| 自拍偷拍欧美日韩| 精品亚洲一区二区三区四区五区高| 久久影视一区| 成人免费观看毛片| 国产精品自在欧美一区| 亚洲а∨天堂久久精品2021| 午夜精品一区二区三区免费视频| 一区二区久久精品66国产精品| 亚洲精品久久久久久下一站| 高h视频在线观看| 国产精品电影一区| 精品精品国产三级a∨在线| 色香蕉在线观看| 日韩电影在线观看一区| yy6080午夜| 亚洲综合免费观看高清在线观看| 丰满熟女人妻一区二区三| 日韩电影大片中文字幕| 天堂av中文在线| 成人做爰www免费看视频网站| 亚洲精华一区二区三区| 欧美久久在线观看| 国产尤物一区二区在线| 蜜乳av中文字幕| 狠狠躁夜夜躁人人爽天天天天97 | 久久成人这里只有精品| 欧美影视资讯| 欧美亚洲国产免费| 国产亚洲一级| 97精品人妻一区二区三区蜜桃| 亚洲你懂的在线视频| 97人妻一区二区精品免费视频| 国产亚洲一区二区在线| 中文字幕在线免费观看视频| 精品国产免费人成电影在线观...| 欧美精品综合| 久久精品无码一区二区三区毛片| 中文字幕欧美一| 一本色道久久综合无码人妻| 最新日韩中文字幕| 亚州一区二区三区| 奇米精品在线| 日本美女视频一区二区| a天堂中文字幕| 欧美三级视频在线观看| 电影av在线| 国产精品旅馆在线| 久久精品高清| 日韩av片专区| 亚洲免费观看高清完整版在线 | 亚洲国产成人精品激情在线| 精品国产91亚洲一区二区三区婷婷| 91最新在线视频| 999视频在线免费观看| 午夜精品电影| 性感美女一区二区三区| 亚洲香蕉伊在人在线观| 香蕉人妻av久久久久天天| 国产a级全部精品| 第一sis亚洲原创| 国产探花在线看| 亚洲精品日产精品乱码不卡| www香蕉视频| 97视频免费观看| 精品精品久久| 91福利免费观看| 亚洲第一成年网| 久久经典视频| 成人观看高清在线观看免费| 国模大胆一区二区三区| 在线观看国产免费视频| 色香色香欲天天天影视综合网| 在线国产91| 99久久99久久精品国产片| 国产日韩免费| 欧美成人短视频| 日韩精品一区二区三区在线播放 | 中文字幕伦理片| 日韩一区二区三区免费观看| www.51av欧美视频| 日韩视频精品| 国产精品88888| aaa在线视频| 欧美精品生活片| 国产成人久久| 手机在线播放av| 在线亚洲高清视频| 久草在线新免费首页资源站| 日韩av电影免费播放| 国产乱理伦片在线观看夜一区 | 欧美一区二区三区人| 超碰在线cao| 青春草在线视频免费观看| 91丨porny丨蝌蚪视频| 一级片在线观看视频| 97色在线视频观看| 亚洲h色精品| 成人国产精品久久久网站| 日韩一级欧美一级| 欧美色片在线观看| 欧美日韩一道本| 亚洲九九爱视频| 77777影视视频在线观看| 国产在线欧美日韩|