我如何在T4模板中使用Linq?
我使用T4为项目生成一些屏幕和中间层代码,并希望使用Linq来简化我的一些模板代码。 但是,当我尝试使用Linq时,模板会报告语法错误。
默认情况下,在Visual Studio 2008中(以及大多数在线示例中使用的),模板使用不包含Linq的2.0 Framework进行编译。 (请参阅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和其他新的语言function。