.NET模板能否通过单个参数同时替换类类型与对应变量名
可以,仅通过单个参数就能实现预期替换效果,不需要新增额外参数。
问题原因
你当前的symbols配置默认只会精确匹配和MyEntity大小写完全一致的字符串做替换,私有字段里的myEntity是小驼峰格式的变体,没有命中现有替换规则,所以_myEntityRepository部分没有被替换。
具体修改方式
只需要在现有entity符号的配置中开启大小写自动适配属性matchCasing,调整后的配置如下:
"symbols": { "entity": { "type": "parameter", "datatype": "string", "replaces": "MyEntity", "fileRename": "MyEntity", "defaultValue": "MyEntity", "matchCasing": true } }
开启该配置后,.NET模板引擎会自动识别原占位符MyEntity的所有大小写变体,替换时自动适配对应位置的大小写格式:
- 大驼峰格式的
MyEntity(比如接口名片段)会直接替换为传入的参数原值,传入Rule时就会生成IRuleRepository - 小驼峰格式的
myEntity(比如私有字段名片段)会自动将传入参数转为小驼峰后替换,传入Rule时就会生成_ruleRepository - 全大写、全小写等其他大小写形式的占位符也会被自动识别适配,不需要额外编写多套替换规则。
修改配置后执行原命令dotnet new service-template -n RuleService --entity Rule,就能得到预期的代码:
private readonly IRuleRepository _ruleRepository;
内容的提问来源于stack exchange,提问作者Alex Kovanev
相关产品推荐
相关产品推荐

