Как я могу использовать Linq в шаблоне T4? - PullRequest
66 голосов
/ 29 октября 2008

Я использую T4 для генерации некоторых экранов и кода среднего уровня для проекта и хотел бы использовать Linq для упрощения части моего кода шаблона. Однако, когда я пытаюсь использовать Linq, шаблон сообщает об ошибке синтаксиса.

1 Ответ

95 голосов
/ 29 октября 2008

По умолчанию в 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" #>

Теперь вы можете использовать Linq и другие новые языковые функции в вашем шаблоне.

...