Je voulais utiliser T4 pour générer des propriétés pour une classe partielle. Je cours dans un problème de configuration où mon fichier .TT est dans le même projet que le fichier de classe que je veux étendre. Donc, si je dois inclure l'assembly dans le fichier .TT, il est verrouillé. J'ai essayé de faire une ligne de commande dans la pré-construction mais le problème est que VS veut toujours recompiler le fichier .TT avec le projet. La seule solution que je peux penser est de renommer les fichiers .tt pour dire .t4, puis utiliser une commande de préconfiguration avec TextTransform -out pour créer le fichier .cs dans le répertoire du projet. Quelqu'un peut-il penser à une façon plus propre de faire cela?Comment utiliser T4 et Visual Studio pour étendre une classe partielle
1
A
Répondre
3
En supposant que votre modèle utilise Reflection pour lire les métadonnées de la classe partielle que vous devez étendre, vous pouvez résoudre le problème de verrouillage si vous utilisez CodeModel. Cette API est fournie par Visual Studio et vous permet d'obtenir les métadonnées directement à partir du fichier source, sans avoir besoin de compiler la classe partielle ou de charger la DLL compilée. Voici un exemple de générateur de code T4 qui utilise cette approche: http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration
Merci Oleg. Je vais essayer tout de suite. – GoClimbColorado
@OlegSych Cette information est-elle disponible partout sur votre nouveau site? L'ancien lien est mort. –
@MassAsp Ancienne demande, mais pour les autres à venir ... nouveau lien @ https://www.developerhandbook.com/c-sharp/t4-templates-for-lookup-tables/ ou peut-être vous https: // lennilobel .wordpress.com/2017/04/26/using-t4-templates-pour-générer-c-enums-from-sql-server-database-tables / –