2010-06-14 19 views
6

: AçıkLambda ifadeleri T4 şablonları birlikte basit bir lambda ifade attı T4 şablonu koyarak iken

Compiling transformation: Invalid expression term '>' 

Bu hata üretmek için başarısız bir şablon neden

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

lambda ifadesi ile çizgi.

Bu, bir şablonun dışında denetlenmiş ve düzgün çalışıyor. T4, lambda ifadeleriyle çalışmayı desteklemiyor mu? Değilse, bir T4 şablonu bağlamında desteklenmeyen başka dil özellikleri var mı?

Teşekkürler!

+0

Googled http://geekswithblogs.net/gavin/archive/2010/03/13/138501.aspx, yine de bir hack. – Dykam

cevap

3

Visual Studio 2008'de T4 kullanıyorsanız, template directive'da C# derleyici sürümünün 3.5 olarak ayarlandığından emin olun. Varsayılan olarak 2,0 kullanır.

+0

Teşekkürler, bu kesinlikle sorun oldu. – RSlaughter

+0

Visual Studio 2012'de T4 kullanıyorsanız, "C# 2.0 ve 3.5 artık desteklenmediğini belirten bir ileti alırsınız. Sürüm 4 her zaman bu denemeden sonra" kullanılır. Benim hala destek yok. – Veverke

0

Çevrede bir çalışma olarak, bu kodu T4 şablonunda arayabileceğiniz harici bir sınıf kitaplığına koyabilirsiniz. Bunu birkaç kez yapmak zorunda kaldım. İdeal değil, ama işe yarıyor.