希望您至少能意識到即使有**自動生成器,但資料庫結構變更等因素也會給我們帶來不少的麻煩。這種直接放到專案裡.tt檔案的好處自然不用多說了。有特別的業務需求,在.用partial類來實現,免得模板檔案自動更新**時將手寫的**覆蓋掉。
看一下下面這個示例你應該就會明白了:
新建乙個控制台應用程式,刪除裡面的所有檔案,新建乙個program.tt的檔案,並輸入如下內容:
c#" debug="儲存後我們會看到解決方案資源管理器中是這個樣式的:true
" #>
.cs" encoding="
utf-8
" #>
string classname = "
program
";#>
namespace helloangel
}}
此時的program.cs檔案正是我們的program.tt檔案生成的,其內容如下:
namespace helloangel看看下面兩個指令:}}
<指令中language指定了我們模板執行使用的語言,可以是vb,或c#,debug宣告了是否使用除錯,如果用不到除錯,可以設定為false.#@ template
language
="c#"
debug
="true"
#>
<
#@ output
extension
=".cs"
encoding
="utf-8"
#>
指令中extension指定了輸出檔案的副檔名,encoding指定輸出檔案的編碼方案。
也就是說,我們可以使用c#語言來寫此模板檔案中的邏輯,模板將會輸出乙個與模板檔名相同,擴充套件名為.cs編碼為utf-8的檔案。
這裡稍作了解下,接下來看看指令的語法吧:
指令的語法如下所示:
<必須將所有特性值放在雙引號內。如果值本身包含引號,則必須使用 \ 字元對這些引號進行轉義。#@ directivename
[attributename
= "attributevalue"
] ... #
>
指令通常是模板檔案或包含的檔案中的第乙個元素。不應將它們放置在**塊 內,也不應放置在類功能塊 之後。
t4 模板指令
<t4 引數指令#@ template
[language
="vb"
] [hostspecific
="true"
] [debug
="true"
] [inherits
="templatebaseclass"
] [culture
="code"
] [compileroptions
="options"
] #>
<t4 輸出指令#@ parameter
type
="full.typename"
name
="parametername"
#>
<t4 程式集指令#@ output
extension
=".filenameextension"
[encoding
="encoding"
] #>
<t4 匯入指令#@ assembly
name
="[assembly strong name|assembly file name]"
#>
<t4 包含指令#@ import
namespace
="namespace"
#>
<看了上面的指令後,就試著寫個模板檔案生成一些類來練習一下吧:#@ include
file
="filepath"
#>
<我們一般的專案多是分了簡單三層,有了上面的一些經驗,你應該會想。要是只寫三個類.tt檔案,就能自動給我們把整個三層維護好那多令人興奮啊!確實,我就是這樣做了乙個專案給大家分享一下:#@ template
language
="c#"
debug
="true"
#>
<
#@ output
extension
=".cs"
encoding
="utf-8"
#>
<
#@ import
namespace
="system.collections.generic"
#>
<
# list
> classnames =
new list<
string
>()
;list<
string
> callmethods = new list<
string
>();
#>
namespace helloangel
.show();", classname));
#>
class <
#=classname
#>
}#>
class program
#>}}
}
看看現在整個專案成什麼樣子了:
這裡不止三個專案了。我加了個unittest的專案,乙個adapters的專案,看專案名稱不難看出來,unittest專案就是乙個測試專案。而adapters專案呢,是實體介面卡專案。先不管它們了。
就這麼點東西,已經完成三層的架設了,只是還是paramter方式的。沒有對儲存過程的支援。十一如果沒有人陪我過的話,我會將對儲存過程的支援新增上去。
建專案的時候建的是.net 4的,這裡我把它改為.net2.0的了。不過本人只裝有visual stuido 2010,如果您使用的是visual studio 2008請您自行將專案檔案中的版本號更正,此方法網上有許多。我就不多囉嗦了。
功能強大的KSnapshot
ksnapshot是kde整合桌面環境自帶的截圖工具,不過在gnome整合桌面環境下也可以安裝和使用它。我們可以通過新立得軟體包管理器或使用apt get命令來安裝它。假設使用命令列方式來安裝,開啟乙個gnome終端視窗,在終端視窗中輸入如下命令 sudo apt get install ksnap...
功能強大的SQL語句
1.複製表結構 sql 1.select into b from a where 1 0 select into b from a where 1 0 2.複製表記錄 複製某些字段 sql 1.insert into b a,b,c select d,e,f from a insert into b...
功能強大的sscanf 函式
int sscanf const char src,const char format,int scanf const char format,這兩個函式很相似,只是第乙個函式以src作為輸入,而第二個函式以標準輸入stdin讀取輸入 format 是格式控制字串,它包含控制字元 如 d,i,s等 ...