我正在使用T4为项目生成一些屏幕和中间层代码,并希望使用Linq来简化我的一些模板代码.但是,当我尝试使用Linq时,模板会报告语法错误.
默认情况下,在Visual Studio 2008中(以及在大多数在线示例中使用),模板使用2.0 Framework进行编译,该框架不包括Linq.(参见MSDN论坛帖子)
要解决这个问题,需要三个步骤:
在模板的语言属性中,指定"C#v3.5"或"VBv3.5" - VS2010不需要此步骤,其中始终使用.Net 4.0.
为System.Core.dll添加程序集指令
导入System.Linq命名空间
您的模板现在看起来像这样:
<#@ template language="C#v3.5" #> <#@ assembly name="System.Core" #> <#@ import namespace="System.Linq" #>
您现在可以在模板中使用Linq和其他新语言功能.