代码之家  ›  专栏  ›  技术社区  ›  GalacticCowboy

如何在T4模板中使用LINQ?

  •  66
  • GalacticCowboy  · 技术社区  · 16 年前

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

    1 回复  |  直到 12 年前
        1
  •  95
  •   GarethJ    12 年前

    默认情况下,在Visual Studio 2008(以及大多数联机示例中使用的模板)中,模板是使用2.0框架编译的,该框架不包括LINQ。(见 MSDN forum thread )

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

    1. 在模板的语言属性中,指定“c v3.5”或“vbv3.5”-此步骤对于始终使用.NET 4.0的VS2010不是必需的。
    2. 为System.Core.dll添加程序集指令
    3. 导入System.Linq命名空间

    您的模板现在将如下所示:

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

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