Récupération de la liste des variables locales

cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008 - 29 mars 2007 à 14:27
cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008 - 29 mars 2007 à 17:43
Bonjour,

J'ai plusieurs variables dans une fonction du type :

   bool object1, object2, object3, object4,...

je souhaiterais récupérer la valeur de ces variables en ne donnant que le nom de la variable

avec une fonction du type GetValue("object1")

Si vous avez compris ce que je demande et si connaissez un moyen de faire ce que je veux ce serait cool

Ou d'une autre manière récupérer la liste des variables locales.

Merci d'avance

Olivier

6 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 mars 2007 à 15:38
Salut,
En fouinant un peu dans la doc et dans le forum en utilisant le mot System.Reflection tu devrais trouver ton bonheur.
J'ai pas d'exemple tout fait sous la main...

<hr />
-Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
29 mars 2007 à 15:42
J'ai beau chercher, je comprends pas le but

J'ai plusieurs variables dans une fonction du type :
   bool object1, object2, object3, object4,...

Si tu te trouves dans la fonction, pourquoi vouloir une méthode qui te ramene les valeurs de ses variables ?

Mx
MVP C# 
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
29 mars 2007 à 16:10
Bon, comme la question est confuse (en tout cas pour moi :p), si tu cherches pour les variables de ta classe, je t'ai fait un petit exemple vite fait.
A toi d'adapter a tes besoins

<hr />namespace ConsoleApplication1
{

   class
Program
   {

      static
void Main(
string[] args)
      {

         TestReflection tr =
new
TestReflection();

         Console.WriteLine(tr.GetValue<
int>(
"value1", tr));

         bool value2 = tr.GetValue<
bool>(
"value2", tr);

         Console.WriteLine(tr.GetValue<
string>(
"value3",
null));

         Console.ReadLine();
      }
   }

public
class
TestReflection
{

   private
int value1 = 10;

   private
bool value2 =
true;

   private
static
string value3 =
"test";

   
   public T GetValue<T>(
string varName,
TestReflection instance)
   {

      Assembly assembly =
Assembly.GetExecutingAssembly();

      Type t = assembly.GetType(
"ConsoleApplication1.TestReflection");

      FieldInfo fieldInfo = t.GetField(varName,
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance |
BindingFlags.Static);

      if (instance !=
null)

         return (T) fieldInfo.GetValue(instance);

      else
return (T) fieldInfo.GetValue(
null);      }
   }
}

<hr />

Mx
MVP C# 
0
cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008
29 mars 2007 à 17:26
Merci beaucoup je pense que ça devrait aller avec un exemple pareil

Olivier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008
29 mars 2007 à 17:35
J'avais mal lu mais, ce ne sont pas les variables de la classes qu'il me faut, mais les variables locales d'une methode...plus complexe

un peu comme dans visual studio lors du debug, l'affichage des variables locales

Olivier
0
cs_olecossois Messages postés 18 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 mars 2008
29 mars 2007 à 17:43
Petite précision je suis avec un Framework 1.1 avec le 2.0 il y a LocalVariableInfo......mais bon....

Olivier
0
Rejoignez-nous