Question

J'utilise T4 pour générer des écrans et du code 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 rapporte une erreur de syntaxe.

Était-ce utile?

La solution

Par défaut, dans Visual Studio 2008 (et tel qu'utilisé dans la plupart des exemples en ligne), le modèle est compilé avec le Framework 2.0, qui n'inclut pas Linq. (Voir fil de discussion MSDN )

Pour résoudre le problème, trois étapes sont nécessaires:

  1. Dans l'attribut de langue de votre modèle, spécifiez "C # v3.5". ou "VBv3.5" - cette étape n'est pas requise pour VS2010, où .Net 4.0 est toujours utilisé.
  2. Ajouter une directive d'assemblage pour System.Core.dll
  3. Importer l'espace de noms System.Linq

Votre modèle ressemblera à quelque chose comme 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 linguistiques dans votre modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top