Comment utiliser T4 et Visual Studio pour étendre une classe partielle

StackOverflow https://stackoverflow.com/questions/376428

  •  22-08-2019
  •  | 
  •  

Question

Je voulais utiliser T4 pour générer des propriétés pour une classe partielle. Je courais dans un problème de configuration où mon fichier .TT est dans le même projet que le fichier de classe que je veux prolonger. Donc, si je dois inclure l'ensemble dans le fichier .TT il se 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 dire .t4 puis utiliser une commande de pré-construction avec TextTransform départ pour créer le fichier .cs dans le répertoire du projet.

Quelqu'un peut-il penser à une façon de le faire? Propre

Était-ce utile?

La solution

En supposant que le verrouillage est causée par votre modèle en utilisant la réflexion pour lire les métadonnées de la classe partielle 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 qu'il soit nécessaire de compiler la classe partielle ou charger la DLL compilée. Voici un exemple d'un 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

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