CodeSmith將模板檔案批量組建檔案的方法

來源:互聯網
上載者:User

以前寫codeSmith模板的時候,如果直接像asp一樣混排編寫的話,代碼輸出來codeSmith中,不知道怎麼儲存到檔案,後來把所有要輸出的模板文字都用stringBuiler串接起來然後IO到檔案中,但是這樣codesmith寫起來太麻煩,介面高亮以及智能提示都不理想,所以非常的亂,而且沒法一下子把所有的類的模板一次性產生(全寫在一個裡面太亂,不便管理,以及以後只需產生一部分時也沒法單獨產生),但看codeSimth裡面的例子之後,發現別人的模板都是一個一個獨立開的,通過一個主模板產生方案,要單個產生就用單個模板去產生好了,於是花了點時間看了下NetTiers的產生方法,終於找到了眉目,在這裡發出來給還沒有解決這個問題的朋友一個參考!

第一步:接下來把你要用來產生的子模板註冊到主模板中去,代碼很簡單,如下:

<%@ Register Name="MyEntityClass" Template="C:\MyEntityClass.cst" MergeProperties="False" ExcludeProperties="" %>

Name="MyEntityClass" 模板好像會被註冊成一個CodeTemplate的衍生類別,MyEntityClass會是這個類的名字;

C:\MyEntityClass.cst為你模板的位置,相對位置也可以;

第二步:為模板添加屬性

當然,我們獨立的子模板出會有屬性需要設定,這個地方可以利用反射來賦值,代碼如下:

CodeTemplate codeTemplate=new MyEntityClassKey();

codeTemplate.SetProperty("IncludeGet", IncludeGet);
codeTemplate.SetProperty("IncludeFind", IncludeFind);
codeTemplate.SetProperty("IncludeSave", IncludeSave);

上面的IncludeGet,IncludeFind就是模板C:\MyEntityClass.cst的一些屬性了!後面就是為其設定的值了!

第三步:輸出檔案

codeTemplate.RenderToFile("c:/3.txt", true);

搞定!後面參數,第一個是輸出的地址,第二個是是否覆蓋!

還有好多的重載,我就不提了!自己可以慢慢看!

這個功能有什麼用呢?當然有用啦,我們寫好一系列的模板之後,一個一個去產生那不太累了,而且參數設定來設定去,都差不多,有了這個功能

我可以將它們一次產生出來,簡單省事!

好的,到這一步為止,就簡單的把NetTiers的模板產生給偷過來了!如果對codesmith不太瞭解的朋友,可以參考園子裡其它前輩的相關教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.