67 votes

Comment utiliser Linq dans un modèle T4?

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.

96voto

GalacticCowboy Points 8185

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:

  1. 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é.
  2. Ajouter une assemblée directive pour System.Core.dll
  3. 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X