Zauważyłem, że .NET 4.5 ma nowy atrybut o nazwie [CallerMemberNameAttribute], który po dołączeniu do parametru metody, poda nazwę ciągu znaków o nazwie tą metodą (jeśli ma to sens).C# Uzyskaj metodę wywoływania bez śledzenia stosu
Niestety, (ponieważ chcę coś zrobić z XNA) celuję tylko w .NET 4.0.
Chcę być w stanie zrobić coś takiego:
void MethodA() {
MethodB();
}
void MethodB() {
string callingMethodName = (...?);
Console.WriteLine(callingMethodName);
}
Gdzie mój wynik byłby sposób A.
Wiem, że mógłbym to zrobić poprzez ślad stosu, ale to) zawodne i b) Sloooow ... Więc zastanawiam się, czy jest jakiś inny sposób, aby zebrać te informacje, które mogą być jednak ...
Miałem nadzieję na pomysły i wiedzę, które każdy może mieć w tej kwestii. Z góry dziękuję :)
Należy podać nazwę metody wywołania jako ciąg znaków? – Oded
@Dokładnie Tak, tak wyraźnie mogłem wywołać MethodB ("MethodA"), ale chodzi o to, że próbuję to zrobić dynamicznie, więc jeśli zmienię MethodA na MethodC, nie będę musiał edytować tego połączenia. – Xenoprimate
Nie udało ci się przedstawić tego punktu w pytaniu. – Oded