J'utilise T4 pour générer des écrans et du code de niveau intermédiaire pour un projet et souhaite utiliser Linq pour simplifier une partie de mon code de modèle. Cependant, lorsque j'essaie d'utiliser Linq, le modèle signale une erreur de syntaxe.
Réponse
Trop de publicités?Par défaut dans Visual Studio 2008 (et aussi utilisé dans la plupart des exemples en ligne) le modèle est compilé avec le Framework 2.0, qui n'incluent pas de Linq. (Voir MSDN fil de discussion du forum)
Pour résoudre ce problème, trois étapes sont nécessaires:
- Dans le modèle de l'attribut de langue, de préciser "C#v3.5" ou "VBv3.5" - cette étape n'est pas nécessaire pour VS2010, où .Net 4.0 est toujours utilisé.
- Ajouter une assemblée directive pour System.Core.dll
- Importer le Système.Linq espace de noms
Votre modèle doit maintenant ressembler à ceci:
<#@ template language="C#v3.5" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
Vous pouvez maintenant utiliser Linq et d'autres nouvelles fonctionnalités de la langue dans votre modèle.