真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

T4TemplateOverview-創(chuàng)新互聯(lián)

T4 Template的組成

T4 Template Overview

上街網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站

指令區(qū):為模板轉(zhuǎn)換引擎提供指令,控制模板如何被處理

  • ?  template:模板相關(guān)的屬性,debug是否可以調(diào)試;hostspecific設(shè)置為true時(shí),為生成的模板類中添加Host屬性

  • ?  output:生成輸出文件類型

  • ?  assembly:模板引擎中引用的程序集

  • ?  import:模板引擎中導(dǎo)入的命名空間

  • ?  include:包含其他文件,在最終轉(zhuǎn)換時(shí),將這些引用的文件和當(dāng)前文件進(jìn)行合并

代碼控制區(qū)

  • ?  標(biāo)準(zhǔn)代碼控制區(qū),<#...#>包圍的區(qū)域,包含標(biāo)準(zhǔn)的代碼

  • ?  表達(dá)式控制區(qū),<#=...#>包圍的區(qū)域,計(jì)算表達(dá)式的值,插入到最終輸出文件中

  • ?  類特性控制區(qū),<#+...#>包圍的區(qū)域,定義類、屬性、方法等,主要用于幫助類或者幫助方法,可以其他代碼區(qū)域引用這里定義的類和方法,該區(qū)域中包含的代碼可以放在單獨(dú)文件中,然后include到當(dāng)前文件中

T4 工具方法

  • ?  Write,WriteLine:向模板中寫入數(shù)據(jù)文本

  • ?  Error,在VS的Error Window面板顯示錯(cuò)誤

  • ?  Warning,在VS的Error Window面板顯示警告

更多方法,請(qǐng)參考:http://msdn.microsoft.com/en-us/library/bb126474.aspx

Host屬性:引用模板轉(zhuǎn)換引擎的宿主

  • ?  Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost類型

  • ?  使用Host.ResolvePath()引用相對(duì)于模板的路徑

  • ?  使用Host.LogErrors打印錯(cuò)誤信息,如果宿主是VS的話,就是向Error Window打印錯(cuò)誤警告信息

  • ?  如果是在VS中使用,可以訪問VS的API

建議的開發(fā)流程

  • ?  T4模板不是編寫代碼的理想環(huán)境(沒有智能提示等)

  • ?  首先在其他工程中實(shí)現(xiàn)模板需要的功能

  • ?  將工程的代碼遷移到T4模板中

?  如何Debug T4模板

  • ?  首先建議采用上面說的開發(fā)流程,T4模板的Debug是用來解決遷移過程中出現(xiàn)的問題

  • ?  template指令設(shè)置debug="true“

  • ?  添加斷點(diǎn)

  • ?  在模板文件中右鍵Debug T4 Template

T4 Template的三個(gè)組件

T4 Template Overview

引擎

T4 Template Overview

如何生成GeneratedTextTransformation

T4 Template OverviewT4 Template Overview

GeneratedTextTransformation運(yùn)行

T4 Template Overview

使用自定義的TextTransformation

GeneratedTextTransformation繼承自TextTransformation,如果要使用另外一套方法集,可以定義繼承自TextTransformation的類,然后在template指令的inherits屬性指定為該類

宿主

  • ?  加載引擎或者指令處理器需要的文本文件或者二進(jìn)制文件,比如加載程序集、指令處理器代碼文件,也可以讀取文本文件,將它們的內(nèi)容作為字符串返回

  • ?  為引擎創(chuàng)建GeneratedTextTransformation類提供一組標(biāo)準(zhǔn)的程序集和命名空間

  • ?  為引擎編譯和執(zhí)行GeneratedTextTransformation類提供AppDomain,使用獨(dú)立的AppDomain是為保護(hù)宿主應(yīng)用程序(VS)不受模板文件中錯(cuò)誤的影響

  • ?  將生成的結(jié)果寫入輸出文件

  • ?  為生成的輸出文件設(shè)置默認(rèn)擴(kuò)展名

  • ?  處理文件轉(zhuǎn)換過程中出現(xiàn)的錯(cuò)誤,比如寫入文件中,又比如VS將錯(cuò)誤顯示到Error Window中

  • ?  為指令提供默認(rèn)值,比如language默認(rèn)值C#

自定義宿主

創(chuàng)建并運(yùn)行自己的工程,引用Microsoft.VisualStudio.TextTemplating.11.0.dll和Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll,主要是使用Engine的ProcessTemplate

更詳細(xì)流程請(qǐng)參考官方文檔:http://msdn.microsoft.com/en-us/library/bb126579.aspx

指令處理器

  • ?  提供公共功能,訪問外部資源或數(shù)據(jù)

  • ?  引擎將指令轉(zhuǎn)換為代碼,添加到GeneratedTextTransformation中,比如Import指令最終添加為using代碼語句

自定義指令處理器:

需要?jiǎng)?chuàng)建繼承自DirectiveProcessor或者RequiresProvidesDirectiveProcessor的類,該類的重要接口如下

  • ?  bool IsDirectiveSupported(string directiveName)支持哪些指令,只有返回true的指令名稱,才會(huì)進(jìn)行下一步的處理

  • ?  void ProcessDirective (string directiveName, IDictionary arguments)處理指令時(shí),引擎調(diào)用這個(gè)方法,一般是將指令名稱和參數(shù)保存下來為后面的操作做準(zhǔn)備

  • ?  string[] GetReferencesForProcessingRun()返回模板需要的程序集名稱

  • ?  string[] GetImportsForProcessingRun()返回模板需要的命名空間

  • ?  string GetClassCodeForProcessingRun()向GeneratedTextTransformation類中插入的實(shí)際代碼,定義了公共功能如屬性、方法等的代碼

部署指令處理器

  • ?  Visual Studio Extension (VSIX)

  • ?  VSPackage

  • ?  注冊(cè)表

詳細(xì)部署流程,請(qǐng)參考官方文檔:http://msdn.microsoft.com/en-us/library/cc138364.aspx

參考文檔和資料

http://msdn.microsoft.com/en-us/library/bb126445.aspx

http://www.cnblogs.com/artech/archive/2010/11/16/T4_Assembly_Locking_Debug.html

http://www.cnblogs.com/artech/archive/2010/10/23/1859529.html

http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文標(biāo)題:T4TemplateOverview-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/desccs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部