我正在使用T4为项目生成一些屏幕和中间层代码,并希望使用Linq来简化我的一些模板代码。但是,当我尝试使用Linq时,模板会报告语法错误。

有帮助吗?

解决方案

默认情况下,Visual Studio 2008(以及大多数在线示例中使用的)模板使用2.0 Framework进行编译,该框架不包含Linq。 (参见 MSDN论坛帖子

要解决这个问题,需要三个步骤:

  1. 在模板的语言属性中,指定“C#v3.5”或“VBv3.5”或“VBv3.5”。 - VS2010不需要此步骤,其中始终使用.Net 4.0。
  2. 为System.Core.dll添加程序集指令
  3. 导入System.Linq名称空间
  4. 您的模板现在看起来像这样:

    <#@ template language="C#v3.5" #>
    <#@ assembly name="System.Core" #>
    <#@ import namespace="System.Linq" #>
    

    您现在可以在模板中使用Linq和其他新语言功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top