【问题标题】:Lambda Expressions in T4 TemplatesT4 模板中的 Lambda 表达式
【发布时间】:2010-06-14 15:24:20
【问题描述】:

在整理 T4 模板的同时,我加入了一个简单的 lambda 表达式:

<#=string.Join(",", updateFields.ConvertAll(field => field.Name).ToArray())#>

这会导致模板无法生成并出现错误:

Compiling transformation: Invalid expression term '>'   

在带有 lambda 表达式的那一行。

这已经在模板之外进行了检查并且工作正常。 T4 不支持使用 lambda 表达式吗?如果没有,是否有任何其他语言功能在 T4 模板的上下文中不受支持?

谢谢!

【问题讨论】:

标签: c# templates lambda t4


【解决方案1】:

如果您在 Visual Studio 2008 中使用 T4,请确保在 template directive 中将 C# 编译器版本设置为 3.5。默认使用 2.0。

【讨论】:

  • 谢谢,这正是问题所在。
  • 如果您在 Visual Studio 2012 中使用 T4,您会收到一条消息,提示“不再支持 C# 2.0 和 3.5。将始终使用版本 4”。我的 tt 仍然没有支持。
【解决方案2】:

作为一种变通方法,您可以将该代码放入外部类库中,然后您可以从 T4 模板中调用该类库。我不得不这样做很多次。它并不理想,但它有效。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多