我如何在T4模板中使用Linq?

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

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

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

  1. 在你的模板的语言属性中,指定“C#v3.5”或“VBv3.5” – 这个步骤对于VS2010来说是不需要的,在这里总是使用.NET 4.0。
  2. 为System.Core.dll添加一个程序集指令
  3. 导入System.Linq命名空间

你的模板现在看起来像这样:

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

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