如何在T4模板中使用Linq?

Gal*_*boy 67 linq t4

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

Gal*_*boy 95

默认情况下,在Visual Studio 2008中(以及在大多数在线示例中使用),模板使用2.0 Framework进行编译,该框架不包括Linq.(参见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" #>
Run Code Online (Sandbox Code Playgroud)

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