Avatar billede jimgordon Nybegynder
29. november 2005 - 10:16 Der er 5 kommentarer og
1 løsning

Reflektion GetMethodName / GetClassName

Vil gerne i runtime kunne læse hvad en klasse og en metode hedder indefra en metode.

Finder der en dynamisk GetMethodName lignende metode, man kan kalde for at læse hvad den aktuelle metode hedder i runtime, samt den klasse den findes i. Således at man kan printe navnet dynamisk ud i runtime:

private void test()
{
  console.write("Du står nu i metode: " + ????)
  console.write("fra klassen: " + ?????)
}
Avatar billede segato Nybegynder
29. november 2005 - 10:57 #1
Det er et meget omdiskuteret emne det med at stå i en funktion og få dens navn. Dette kan desværre ikke lade sig gøre. Jeg ved ik om det kan i det nye framework som lige er relased. Men du kan sagtens ud fra en klasse se hvilke metoder og properties .. de har, men desværre ikke den eksekvenrende funktions navn via reflections. Jeg læste til gengøld om en gut der i stedet anvendte stacktrace til det. Så du kan via lidt streng manipulering hive navnet ud. Jeg kan desværre ik finde den artikel det men prøv a kigge lidt i stacktrace i stedet.
Avatar billede jimgordon Nybegynder
29. november 2005 - 12:43 #2
System.Reflection.MethodInfo.GetCurrentMethod().ToString();  // Gets the method name.

System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.ToString(); // Gets the class name.
Avatar billede segato Nybegynder
29. november 2005 - 13:29 #3
Kan man få fat i parametre også?
Avatar billede burningice Nybegynder
29. november 2005 - 15:33 #4
segato>> som jimgordon har vist, så er det ingen problem at finde ud af hvilken metode man står i. Stacktrace kan man bruge til at finde ud af hvem det var der kaldte den givne metode man måtte stå i.
Avatar billede segato Nybegynder
29. november 2005 - 16:28 #5
ja det er rigtigt. genopfrisker min hukommelse nu. Det problem jeg havde var jeg ikke kunne få fat i parameterne i din fuktion jeg stod i dynamisk. jeg ville gerne kalde en tilsvarende funktion men kunne i få fat i antalet af parametre og værdien af dem.
Avatar billede jimgordon Nybegynder
30. november 2005 - 09:51 #6
System.Reflection.MethodInfo.GetCurrentMethod().ToString();
Giver også typen af de anvendte parametre samt returtype, men altså ikke selve navnet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester