如何在T4模板中使用Linq?

时间:2008-10-29 14:28:10

标签: linq t4

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

1 个答案:

答案 0 :(得分:95)

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

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

  1. 在模板的语言属性中,指定“C#v3.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和其他新语言功能。