Je cherche à créer un petit générateur de classe pour un projet. J’ai lu sur CodeDOM que la sémantique de la création des classes ne semble pas poser de problème, mais je ne sais pas comment intégrer au mieux la génération dans le processus de développement et de déploiement.
Comment dois-je déclencher la création des classes? J’ai lu que cela devrait faire partie du processus de construction, comment dois-je faire cela?
Où les classes devraient-elles être créées? J’ai lu que les fichiers ne devraient pas être édités à la main, et jamais archivés dans le contrôle de source. Devrais-je même m’inquiéter à ce sujet et simplement générer les classes dans le même répertoire que le moteur du générateur?
Les réponses à votre question dépendent en partie du but de vos classes générées.
Si les classes sont générées dans le cadre du développement , elles doivent être générées sous forme de fichiers texte et archivées dans votre GDS, comme toute autre classe.
Si vos classes sont générées dynamicment au moment de l’ exécution dans le cadre du fonctionnement de votre système, je n’utiliserais pas du tout CodeDOM. J’utiliserais la reflection.
Jetez un coup d’œil aux modèles T4 (intégrés à VS2008). Il vous permet de créer des classes “modèles” qui génèrent du code pour vous. Oleg Sych est une ressource inestimable pour cela.
Lien vers le tutoriel d’Oleg sur la génération de code .
Je connais la présence de modèles T4 (et je sais que de nombreuses personnes les utilisent), mais je ne les ai pas utilisés moi-même. En plus de ceux-ci, vous avez deux options principales:
csc
(le compilateur C #). Limites de cette méthode: