Sébastien Lebreton
Modification d'assemblage et injection de code C# / VB.NET à la volée
Reflexil est un plugin pour Reflector permettant la modification des assemblages .NET. Il permet par exemple d'altérer le code IL d'un assemblage ou de travailler à plus haut niveau en injectant directement du code C#/VB dans le corps d'une méthode.
Par Sébastien Lebreton publié le 17/09/2007 à 00:34, lu 8441 fois, 9 pages
 3 | Modification du code à l'aide de l'éditeur d'instructions
A l'aide de l'éditeur d'instructions nous allons modifier le code IL de la méthode « ComputeAndDisplay » pour appeler l'overload de la méthode « MessageBox.Show » qui prend comme second paramètre un titre pour la fenêtre modale d'affichage du résultat.
Pour cela, nous allons d'abord placer sur la pile un paramètre de type chaîne à l'aide de l'opcode « ldstr » avant l'appel à la méthode « Show » :
 
Editeur IL de Reflexil

Editeur IL de Reflexil

 
 
Création d'une instruction

Création d'une instruction

 
Puis nous allons modifier l'instruction « call » pour utiliser l'overload de la méthode « MessageBox.Show » qui utilise le paramètre précédemment crée :
 
Editeur IL de Reflexil

Editeur IL de Reflexil

 
 
Modification d'une instruction

Modification d'une instruction

 
 
Sélection d'une méthode

Sélection d'une méthode

 
Il est temps de sauvegarder notre travail pour tester notre assemblage modifié :
 
Sauvegarde de l'assemblage

Sauvegarde de l'assemblage

 
Notre assemblage utilise désormais l'overload et le paramètre approprié :
 
Test de l'assemblage modifié

Test de l'assemblage modifié

 
 
» Démarrer une discussion
 
Discussion démarée par Noham Choulant le 18/04/2008 à 13:53, 2 commentaire(s).