Exécuter contenu d'une variable comme une commande

Le
SL3News
Bonjour,
J'ai une commande se trouvant dans une variable.
Exemple :
string maCommand = "int i = 0, y = 2*i + 3;";

Je voudrais pouvoir exécuter le contenu de maCommand comme si j'avais tapé
directement l'instruction suivante :
int i = 0, y = 2*i + 3;

&maCommand; // par exemple, cette instruction ne marche pas

Quelqu'un a-t-il une solution?

Merci d'avance pour vos contributions.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12177001
Le Fri, 14 Sep 2007 18:40:30 +0200, SL3News
Bonjour,
J'ai une commande se trouvant dans une variable.
Exemple :
string maCommand = "int i = 0, y = 2*i + 3;";

Je voudrais pouvoir exécuter le contenu de maCommand comme si j'avais
tapé
directement l'instruction suivante :
int i = 0, y = 2*i + 3;

&maCommand; // par exemple, cette instruction ne marche pas

Quelqu'un a-t-il une solution?

Merci d'avance pour vos contributions.





Il n'existe pas de mécanisme d'évaluation directe sous .NET...

Cependant il y a 2 possibilité pour produire un équivalent :
- Utiliser le CodeDOM de .NET pour générer un assembly et le compiler en
mémoire (solution simple, un peu lourde)
- Utiliser l'objet DynamicMethod de l'espace de nom System.Reflection.Emit
pour générer du code (solution complexe nécessite la connaissance du MSIL,
mais optimisé).

La 2ème méthode possède aussi un inconvénient dans votre cas, vous devez
analyser votre chaine pour savoir quel type de code à générer...
Tandis que la 1ère méthode possède une classe : CodeSnippetCompileUnit
auquel vous pouvez injecter directement une chaine de caractère à
compiler...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Publicité
Poster une réponse
Anonyme