IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Librairie pour génération de sources C# ?


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Points : 59
    Points
    59
    Par défaut Librairie pour génération de sources C# ?
    Bonjour,

    je cherche depuis un petit moment un moyen de générer dynamiquement du code C# de façon élégante.

    Je pourrais bien sûr coder quelques classes utilitaires qui concatènent des chaînes de caractères, mais ce n'est ni propre ni portable.

    Existe-t-il une librairie qui permette d'écrire des sources C# ou un langage .Net ?
    Un peu dans la mouvance XmlWriter pour écrire rapidement du Xml sans avoir à écrire caractère par caractère.

    Je vous remercie d'avance,
    Jérôme.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    générer dynamiquement du code C#
    CodeDom !
    Si il s'agit de définir des classes ou des fonctions dynamiquement à partir d'un texte contenant des instructions C# en cours d'éxécution d'un programme.

    voir :http://vincentlaine.developpez.com/tuto/dotnet/codedom/
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Points : 59
    Points
    59
    Par défaut


    Je suis allé voir ton lien, la première phrase dit que peu de gens connaissent CodeDom, je suis d'accord

    Merci à toi pour cette info, et merci à developpez.net pour ce tuto de bonne facture

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    A savoir :
    Une fois défini, un code dynamique reste en mémoire sans pouvoir être effacé
    (donc, problème éventuel si le nombre de code différents est trés grand).

    Astuce :
    Les instructions Invoke() pénalisant les performances si on les appelle dans des boucles de calcul, on définira dans la mesure du possible des classes héritées d'une classe non dynamique et on créera dans la classe dynamique une méthode qui override une méthode virtual de la classe non dynamique. On peut ainsi appeler du code dynamique, via l'appel de la methode overidée qui peut se faire sans invoke, puisqu'on connait la classe de base.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Points : 59
    Points
    59
    Par défaut
    Hmm, ok, l'astuce est intéressante !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/07/2010, 22h27
  2. Réponses: 4
    Dernier message: 05/07/2007, 11h11
  3. Recherche librairies pour les images
    Par mathieu_t dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/08/2004, 21h14
  4. Requete MySql pour Mambo Open source
    Par azman0101 dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/06/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo