CodeGen用户定义的扩展令牌
CodeGen用戶定義的擴展令牌
用戶定義的擴展令牌是一種特殊的令牌,開發人員可以確定令牌的名稱以及在代碼生成過程中遇到令牌時要插入的值。
CodeGen支持多種機制,允許通過以下方式實現用戶定義的令牌:
?Environment variables.
?Include files.
?Command line tokens.
?Under defined token files.
如果模板文件依賴于開發人員為特定的用戶定義標記提供值,可以將該
依賴關系告訴CodeGen。有關詳細信息,請參閱聲明用戶定義的令牌依賴項。
環境變量
如泛型標記中所述,可以使用<環境:變量>模板文件中的令牌和CodeGen將把從
環境變量獲得的值插入到輸出流中。
包括文件
在通用標記中也有記錄,可以使用<文件:name.ext>模板文件中的令牌和CodeGen
將從外部文件中讀取數據并將該數據插入到輸出流中。
命令行標記
聲明已用已定義標記的一種快速方法是使用-ut命令行選項在命令行上同時指定名
稱和值,例如:
codegen –s -t -ut MODEL_NS=MyApp.Model
可以在命令行上指定多個用戶定義的標記,在-ut選項后用空格分隔,例如:
codegen –s -t -ut MODEL_NS=MyApp.Model VIEW_NS=MyApp.View
如果用戶定義的標記值(等號字符后面的部分)包含雙引號,則在將值傳遞給
CodeGen之前,Windows將刪除引號。在這種情況下,必須用反斜杠字符轉義雙引
號字符,如下所示:
-ut MYMESSAGE=“Hello World”
默認情況下,在命令行上定義的替換值用戶定義標記可能不包含其他標記。如果希
望啟用該功能,則必須通過-utpp命令行選項告訴CodeGen將用戶定義的標記視為
預處理器標記。
用戶定義的令牌文件
如果需要定義多個用戶定義的令牌,那么有時可以在用戶定義的令牌文件中定義它
們,并通過-u命令行選項命名用戶定義的令牌文件。
用戶定義的令牌文件示例如下:
;
; User defined tokens for Synergex Inc.
;
<SUPPORT_PHONE>(800) 366-3472</SUPPORT_PHONE>
<SUPPORT_EMAIL>support@synergex.com</SUPPORT_EMAIL>
http://www.synergex.com
要告訴CodeGen從文件中讀取用戶定義的標記,可以使用-u命令行選項。例如:
codegen –s -t -u MYTOKENS:
然后可以在模板文件中引用用戶定義的標記。例如:
display(tt,”Please call support at <SUPPORT_PHONE>”)
display(tt,” or send an email to <SUPPORT_EMAIL>.”)
聲明用戶定義的令牌依賴項
如果CodeGen在模板文件中遇到某種格式類似于令牌(即由< and >字符分隔)但未被識別為令牌的內容,則CodeGen將忽略它,并且該文本將保留在創建的輸出文件中。為了使CodeGen能夠為諸如HTML、XML和XAML等語言或腳本生成代碼,這是必需的。
但是,當涉及到用戶定義的令牌時,這可能是一個問題,因為如果模板包含的內容是模板開發人員打算作為用戶定義的令牌來替換的,但是隨后從模板生成代碼的人忽略了指定用戶定義令牌的來源,則令牌將保留在生成的文件,不會報告任何錯誤。
為了解決這種情況,模板開發人員可以使用<REQUIRES_USERTOKEN>令牌來聲明他們的模板需要聲明一個特定的用戶定義的令牌,可以在令牌文件(-u)中,也可以在命令行(-ut)中聲明。
如果模板聲明需要用戶定義的標記,但在生成代碼時尚未聲明該用戶定義標記,則CodeGen將顯示錯誤并停止處理該模板。
總結
以上是生活随笔為你收集整理的CodeGen用户定义的扩展令牌的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CodeGen编写自定义表达式标记
- 下一篇: CodeGen处理Synergy方法目录