Я использую T4 для создания некоторых экранов и кода промежуточного уровня для проекта и хотел бы использовать Linq для упрощения некоторых из моих шаблонов. Однако, когда я пытаюсь использовать Linq, шаблон сообщает о синтаксической ошибке.
Как использовать Linq в шаблоне T4?
Ответ 1
По умолчанию в Visual Studio 2008 (и используется в большинстве онлайн-примеров) шаблон компилируется с помощью 2.0 Framework, который не включает Linq. (См. Тема форума MSDN)
Чтобы решить проблему, необходимы три шага:
- В атрибуте языка шаблона укажите "С# 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 и другие новые языковые функции в вашем шаблоне.