亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

T4文本模板轉換過程

2019-11-17 01:35:20
字體:
來源:轉載
供稿:網友

T4文本模板轉換過程

T4文本模板轉換過程將文本模板文件作為輸入,生成一個新的文本文件作為輸出。 例如,可以使用文本模板生成 Visual Basic 或 C# 代碼,還可以生成 HTML 報告。

有三個組件參與這一過程:引擎宿主指令處理器。 引擎對該過程進行控制(引擎與宿主和指令處理器交互),以生成輸出文件;宿主提供與環境的所有交互(如定位文件和程序集); 指令處理器為文本模板添加功能(如從 xml 文件或數據庫讀取數據等)。

組件:

組件 說明 可自定義(是/否)
引擎 引擎組件控制文本模板轉換過程。
主機 宿主是引擎與用戶環境之間的接口。 Visual Studio 是文本轉換過程的宿主。 是。 可以編寫自定義宿主。
指令處理器 指令處理器是處理文本模板中的指令的類。 可以使用指令從輸入源向文本模板提供數據。 是。 可以編寫自定義指令處理器。

引擎:

引擎以字符串形式從宿主接收模板,而宿主處理在轉換過程中所用的所有文件。 接下來,引擎請求宿主定位所有自定義指令處理器和環境中的其他方面。 然后,引擎編譯和運行生成轉換類。 引擎將生成的文本返回給宿主,宿主通常將該文本保存到文件中。

宿主:

宿主負責轉換過程之外與環境有關的所有操作,包括:

1)查找引擎或指令處理器請求的文本和二進制文件。 宿主可以搜索目錄和全局程序集緩存以查找程序集。 宿主可以為引擎查找自定義指令處理器代碼。 宿主還可以查找并讀取文本文件,然后以字符串形式返回其內容。

2)提供標準程序集和命名空間的列表,供引擎用于創建生成轉換類。

3)提供引擎在編譯和執行生成轉換類時所用的應用程序域。 將使用獨立應用程序域,以免宿主應用程序受到模板代碼錯誤的影響。

4)寫入生成的輸出文件。

5)設置生成的輸出文件的默認擴展名。

6)處理文本模板轉換錯誤。 例如,宿主可以將錯誤顯示在用戶界面中,也可以將錯誤寫入文件。 (在 Visual Studio 中,錯誤顯示在“錯誤消息”窗口中。)

7)在用戶調用了指令但未提供值時,提供必需的參數值。 指令處理器可以指定指令名稱和參數,可以請求宿主提供默認值(如果有)。

指令和指令處理器:

指令是文本模板中的命令。 它向生成過程提供參數。 通常,指令定義模型或其他輸入的源和類型,以及輸出文件的文件擴展名等。

指令處理器可以處理一個或多個指令。 轉換模板之前,必須安裝能夠處理模板中的指令的指令處理器。


有了基本的概念,我們看下面的Demo(在程序中動態執行T4模板):


在程序中動態執行T4模板:

執行結果:

image

CustomTextTemplatingEngineHost.cs(自定義文本模板宿主?)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TextTemplating;
using System.CodeDom.Compiler;
using System.IO;
namespace CustomHost
{
    public class CustomTextTemplatingEngineHost : ITextTemplatingEngineHost, ITextTemplatingsessionHost
    {
        #region ITextTemplatingEngineHost
        internal string TemplateFileValue;
<PRe style="border-t
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97国产成人精品视频| 久久精品中文字幕| 91精品国产综合久久久久久蜜臀| 欧美激情精品久久久久久久变态| 久久久www成人免费精品张筱雨| 欧洲美女7788成人免费视频| 国产精品美乳在线观看| 亚洲综合大片69999| 91精品91久久久久久| 在线亚洲国产精品网| 久久电影一区二区| 欧美特级www| 日日骚久久av| 亚洲第一色在线| 欧美猛男性生活免费| 久久久这里只有精品视频| 国产欧美日韩中文| 午夜精品美女自拍福到在线| 亚洲国产精品推荐| 久久久电影免费观看完整版| 国产精品黄页免费高清在线观看| 欧美日本啪啪无遮挡网站| 午夜精品久久久久久久男人的天堂| 亚洲精品视频在线播放| 中文字幕日韩有码| 亚洲欧美国产另类| 久热爱精品视频线路一| 久久亚洲春色中文字幕| 日韩欧中文字幕| 精品久久久久久久大神国产| 少妇久久久久久| 91精品在线播放| 欧美电影在线免费观看网站| 国产成人精品免高潮在线观看| 欧美乱大交xxxxx| 亚洲男人天堂手机在线| 中文字幕在线精品| 国产精品户外野外| 精品久久久久久久久久久久久| 国产精品美女网站| 国产精品爱啪在线线免费观看| 色偷偷av一区二区三区| 精品高清一区二区三区| 亚洲美女黄色片| 欧美成人精品激情在线观看| 狠狠躁夜夜躁人人爽天天天天97| 51午夜精品视频| 在线日韩av观看| 久久九九国产精品怡红院| 91sao在线观看国产| 欧美极品少妇xxxxⅹ免费视频| 亚洲国产精品久久精品怡红院| 色中色综合影院手机版在线观看| 亚洲天堂av在线免费| 久久久久久久国产| 欧美激情日韩图片| 88xx成人精品| 国产精品极品在线| 久久久久久久色| 国产精品揄拍500视频| 777777777亚洲妇女| 久久国产一区二区三区| 97超级碰在线看视频免费在线看| 欧美激情精品久久久久| 欧美怡春院一区二区三区| 日本欧美国产在线| 欧美精品制服第一页| 欧美日韩中文在线观看| 国产精品久久久久久久久久久久久| 中文字幕日韩免费视频| 久久久久国产一区二区三区| 国产精品久久综合av爱欲tv| 久精品免费视频| 国产成人亚洲精品| 国产精品视频成人| 日本一区二区不卡| 国产91ⅴ在线精品免费观看| 国产亚洲精品美女久久久久| 欧美色视频日本高清在线观看| 欧美日韩裸体免费视频| 69av视频在线播放| 国产精品扒开腿做爽爽爽男男| 日韩精品福利在线| 日韩精品在线免费播放| 欧美日韩电影在线观看| 国产精品国产亚洲伊人久久| 欧美中文字幕精品| 成人做爰www免费看视频网站| 日韩高清电影免费观看完整| 中日韩美女免费视频网站在线观看| 欧美午夜精品伦理| 亚洲影院污污.| 国产精品女视频| 久久久久久久97| 亚洲在线www| 国产精品一区二区久久久| 38少妇精品导航| 国产精品一久久香蕉国产线看观看| 亚洲在线视频观看| 深夜精品寂寞黄网站在线观看| 亚洲人成电影在线观看天堂色| 国产精品美女av| 中文字幕亚洲综合久久| 亚洲国产欧美日韩精品| 51精品国产黑色丝袜高跟鞋| 亚洲国内精品在线| 97国产真实伦对白精彩视频8| 亚洲欧美一区二区三区在线| 亚洲人成毛片在线播放| 91亚洲国产成人久久精品网站| 久久欧美在线电影| 欧美老女人性视频| 亚洲美女av电影| 亚洲精品一区av在线播放| 国产精品久久久久久久久影视| 国内精品美女av在线播放| 久久久国产精品一区| 97碰碰碰免费色视频| 久久久人成影片一区二区三区| 97国产成人精品视频| 欧美精品18videosex性欧美| 精品无码久久久久久国产| 亚洲字幕在线观看| 亚洲一区二区中文字幕| 亚洲国产成人久久综合一区| 日韩在线观看高清| 久久夜精品va视频免费观看| 亚洲第一男人天堂| 久久精品国产精品| 国产中文字幕91| 亚洲最大成人免费视频| 国产自摸综合网| 国产精品美女午夜av| 欧美裸体xxxx| 久久综合久久88| 在线看福利67194| 久久久久久久国产精品视频| 欧美巨乳在线观看| 亚洲影视九九影院在线观看| 亚洲热线99精品视频| 91成人免费观看网站| 欧美成人精品激情在线观看| 久久乐国产精品| 亚洲成人a**站| 国产不卡精品视男人的天堂| 97精品久久久| 成人激情春色网| 成人免费视频在线观看超级碰| 91爱爱小视频k| 国产精品自产拍在线观看中文| 国产精品视频网| 国产精品久久久久久久久久久久久久| 国产精品wwww| 国产精品扒开腿做爽爽爽的视频| 欧美日韩国产黄| 亚洲激情视频在线观看| 日韩av在线直播| 日韩中文字幕在线视频| 亚洲自拍欧美另类| 国产成人精品久久| 久久久伊人欧美| 欧美成人中文字幕在线| 成人免费视频网址| 粉嫩av一区二区三区免费野|