【发布时间】:2018-02-17 21:28:56
【问题描述】:
我已将 T4 脚手架模板复制到我的 Visual Studio 2017 项目中,以便我可以自定义它们。大多数情况下它工作正常。但是 Controller.cs.t4 中的一行代码让人头疼。 这条有问题的线需要像这样才能让脚手架工作:
var entitySetVar = EntitySetVariable ?? (String.IsNullOrEmpty(entitySetName) ? entitySetName : (entitySetName.Substring(0, length:1).ToLowerInvariant() + entitySetName.Substring(1)));
要构建的项目必须是这样的:
var entitySetVar = EntitySetVariable ?? (String.IsNullOrEmpty(entitySetName) ? entitySetName : (entitySetName.Substring(0, length-1).ToLowerInvariant() + entitySetName.Substring(1)));
注意区别:length:1 vs length-1
使用 length:1 我会立即收到语法错误,但脚手架可以正常工作。
使用length-1,没有语法错误,但脚手架失败说:“编译转换:名称'length'在当前上下文中不存在'行号'54'和列号'127'”
有人可以解释发生了什么和/或提出修复建议吗?来回切换已经变老了。
【问题讨论】:
标签: c# visual-studio t4