天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

從數(shù)據(jù)到代碼—基于T4的代碼生成方式

  在之前寫一篇文章《從數(shù)據(jù)到代碼》(上篇下篇)中,我通過基于CodeDOM+Custom Tool的代碼生成方式實(shí)現(xiàn)了將一個(gè)XML表示的消息列表轉(zhuǎn)換成了相應(yīng)的C#代碼,從而達(dá)到了強(qiáng)類型編程的目的。實(shí)際上,我們最常用的代碼生成當(dāng)時(shí)不是CodeDOM,而是T4,這是一個(gè)更為強(qiáng)大,并且適用范圍更廣的代碼生成技術(shù)。今天,我將相同的例子通過T4的方式再實(shí)現(xiàn)一次,希望為那些對T4不了解的讀者帶來一些啟示。同時(shí)這篇文章將作為后續(xù)文章的引子,在此之后,我將通過兩篇文章通過具體實(shí)例的形式講述如果在項(xiàng)目將T4為我所用,以達(dá)到提高開發(fā)效率和保證質(zhì)量的目的。[這里有T4相關(guān)的資料][文中的例子可以從這里下載]。

  一、我們的目標(biāo)是:從XML文件到C#代碼

  再次重申一下我們需要通過“代碼生成”需要達(dá)到的目的。無論對于怎么樣的應(yīng)用,我們都需要維護(hù)一系列的消息。消息的類型很多,比如驗(yàn)證消息、確認(rèn)消息、日志消息等。我們一般會將消息儲存在一個(gè)文件或者數(shù)據(jù)庫中進(jìn)行維護(hù),并提供一些API來獲取相應(yīng)的消息項(xiàng)。這些API一般都是基于消息的ID來獲取的,換句話說,消息獲取的方式是以一種“弱類型”的編程方式實(shí)現(xiàn)的。如果我們能夠根據(jù)消息存儲的內(nèi)容動(dòng)態(tài)地生成相應(yīng)的C#或者VB.NET代碼,那么我們就能夠以一種強(qiáng)類型的方式來獲取相應(yīng)的消息項(xiàng)了。

  比如說,現(xiàn)在我們定義了如下一個(gè)MessageEntry類型來表示一個(gè)消息條目。為了簡單,我們盡量簡化MessageEntry的定義,僅僅保留三個(gè)屬性Id、Value和Category。Category表示該消息條目所屬的類型,你可以根據(jù)具體的需要對其分類(比如根據(jù)模塊名稱或者Severity等)。Value是一個(gè)消息真實(shí)的內(nèi)容,可以包含一些占位符({0},{1},…{N})。通過指定占位符對用的值,最中格式化后的文本通過Format返回。

   1: public class MessageEntry
   2: {
   3:     public string Id { get; private set; }
   4:     public string Value { get; private set; }
   5:     public string Category { get; private set; }
   6:  
   7:     public MessageEntry(string id, string value, string category)
   8:     {
   9:         this.Id         = id;
  10:         this.Value      = value;
  11:         this.Category   = category;
  12:     }
  13:     public string Format(params object[] args)
  14:     {
  15:         return string.Format(this.Value, args);
  16:     }
  17: }

NET技術(shù)從數(shù)據(jù)到代碼—基于T4的代碼生成方式,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产综合视频在线观看一区 | 99精品无码AV在线播放 | 一级毛片全部免 | 亚洲国产精品一区二区第一页 | 精品免费视在线视频观看 | 18未满不能进的福利社 | 丰满的女友1在线观看 | 亚洲AV无码国产精品色在线看 | 又黄又湿免费高清视频 | 琪琪热热色原日韩在线 | 开心色99xxxx开心色 | 69亞洲亂人倫AV精品發布 | 裸妇厨房风流在线观看 | 亚洲欧美国产旡码专区 | 99E久热只有精品8在线直播 | 中国老妇xxxhd| 俄罗斯大白屁股 | 成年视频xxxxxx在线 | 世界第一黄暴漫画家 | 九色PORNY真实丨国产免费 | 中文字幕中文字幕永久免费 | 国产香蕉尹人视频在线 | 色欲AV精品人妻一区二区三区 | 嫩草影院久久99 | 成人在线视频观看 | 伦理片秋霞免费影院 | 国产精品禁18久久久夂久 | 嗯啊快拔出来我是你老师视频 | 秋霞网在线伦理免费 | 久久麻豆亚洲AV成人无码国产 | jiz中国zz | jizzjizz丝袜 | 嫩草影院在线观看精品 | caoporn免费视频在线 | 亚洲午夜AV久久久精品影院色戒 | 欧美乱码伦视频免费66网 | 高h 大尺度纯肉 np快穿 | 探花口爆颜射乳交日韩 | 国产成人啪精品视频免费网 | 郭德纲于谦2012最新相声 | 阿娇和冠希13分钟在线观看 |