Лямбда-выражения в шаблонах T4 - PullRequest
6 голосов
/ 14 июня 2010

Собирая шаблон T4, я добавил простое лямбда-выражение:

<#=string.Join(",", updateFields.ConvertAll(field => field.Name).ToArray())#>

Это приводит к сбою создания шаблона с ошибкой:

Compiling transformation: Invalid expression term '>'   

В строке с лямбда-выражением.

Это было проверено вне шаблона и работает нормально. Т4 не поддерживает работу с лямбда-выражениями? Если нет, есть ли другие языковые функции, которые не поддерживаются в контексте шаблона T4?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 14 июня 2010

Если вы используете T4 в Visual Studio 2008, убедитесь, что у вас установлена ​​версия компилятора C # 3.5 в шаблонной директиве .По умолчанию он использует 2.0.

0 голосов
/ 14 июня 2010

В качестве временного решения вы можете поместить этот код во внешнюю библиотеку классов, которую затем можно вызвать из шаблона T4.Я должен был сделать это несколько раз.Это не идеально, но это работает.

...