29. november 2005 - 10:16Der 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: " + ?????) }
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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.
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.
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.
System.Reflection.MethodInfo.GetCurrentMethod().ToString(); Giver også typen af de anvendte parametre samt returtype, men altså ikke selve navnet.
Synes godt om
Ny brugerNybegynder
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.