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用户定义的扩展令牌相关推荐

  1. Laravel 5.5 使用 Jwt-Auth 实现 API 用户认证、刷新令牌(一)

    需求: 新项目,采用前后端分离的模式,前端使用 Vue.js,后端使用 Laravel 5.5构建 Api 服务,用户认证的包使用 jwt-auth .本次博客会分4步完成, Laravel 5.5 ...

  2. 博途数据类型wstring怎么用_如何在STEP 7 (TIA 博途)中使用“用户定义数据类型” (UDTS)...

    说明 创建一个 PLC 数据类型,在项目导航中打开" PLC 数据类型"文件夹并双击"添加新数据类型".新创建的 PLC 数据类型将分配一个默认名称.如果想更改 ...

  3. 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数

    用户定义函数 Haskell 或 Scheme 程序员会告诉您,函数对于任何严肃的编程语言来说都是最重要的特性.对于 C 或 Perl 程序员,他们也会告诉您完全相同的观点. 函数为严肃的程序员提供了 ...

  4. udt java_Java DB中的Java用户定义类型(UDT)

    udt java Java DB是基于Java编程语言和SQL的关系数据库管理系统. 这是Apache软件基金会的开源Derby项目的Oracle版本. Java SE 7 SDK中包含Java DB ...

  5. Java DB中的Java用户定义类型(UDT)

    Java DB是基于Java编程语言和SQL的关系数据库管理系统. 这是Apache软件基金会的开源Derby项目的Oracle版本. Java SE 7 SDK中包含Java DB. 用户定义类型( ...

  6. 线性代数 向量长度_用户定义长度的向量| 使用Python的线性代数

    线性代数 向量长度 Prerequisite: Defining a vector 先决条件: 定义向量 Linear algebra is the branch of mathematics con ...

  7. sql自定义函数学习思路_学习SQL:用户定义的函数

    sql自定义函数学习思路 You can create several user-defined objects in a database. One of these is definitely u ...

  8. 自定义异常 java_Java自定义异常–用户定义的异常

    自定义异常 java Custom Exceptions or User-Defined Exceptions are very common in Java applications. We can ...

  9. SQL Prompt数据库教程:标量用户定义函数误用作常量

    SQL Prompt是一款实用的SQL语法提示工具.SQL Prompt根据数据库的对象名称.语法和代码片段自动进行检索,为用户提供合适的代码选择.自动脚本设置使代码简单易读–当开发者不大熟悉脚本时尤 ...

最新文章

  1. 机器学习基础专题:特征工程
  2. 第二阶段个人总结11
  3. 【vue.js开发】如何在vue里面优雅的解决跨域,路由冲突问题
  4. 基于 Spring Boot 和 Spring Cloud 实现微服务架构
  5. 解题报告-Leecode 563. 二叉树的坡度——Leecode每日一题系列
  6. wp8数据存储--独立存储文件 【转】
  7. 【奇淫巧技】打狗棒法---过安全狗注入手法
  8. 创业是一个高风险高收入的行业
  9. Git 基础(六)—— 工作区和暂存区与 Git 对修改的管理
  10. windows下使用Wireshark调试chrome浏览器的HTTP/2流量
  11. 芒格:倒过来思考有利于理解事物本质并解决问题
  12. ddrelease64 黑苹果_GitHub - wangtufly/Precision5510-High-Sierra: DELL Precision5510 10.13.X 黑苹果教程...
  13. 大型语言模型,真的能够理解人类吗?
  14. java if 终止_java中跳出或终止if语句的方法
  15. TF内存卡(SDHC)的传输规范
  16. 浅陌初心 / vue3-admin-element
  17. 画色彩如何画出体积感
  18. 很抱歉,EXCEL遇到错误,使其无法正常工作,因此需要关闭EXCEL。是否希望我们立即修复?...
  19. 2021-09-29 每天几个LCEDA小知识——如何修改元器件封装
  20. 安装操作系统的方法?

热门文章

  1. 阿里云如何将服务器添加至跳板机,如何将服务器添加至jumpsever
  2. Nginx搭建负载均衡集群
  3. 2022-2028年中国pu管行业市场深度分析及市场规模预测报告
  4. 相关性检验_相关系数
  5. LeetCode简单题之最长回文串
  6. LeetCode简单题之K 进制表示下的各位数字总和
  7. 什么阻碍了人工智能在制造业的应用?
  8. 快速搭建第一个Mybatis程序
  9. [C] [字节跳动] [编程题] 手串
  10. android 购物车数量加减计算(几行代码实现效果)