Ho notato che .NET 4.5 ha un nuovo attributo chiamato [CallerMemberNameAttribute] che, se collegato a un parametro di un metodo, fornirà il nome stringa del metodo che ha chiamato quel metodo (se questo ha senso).C# Ottieni metodo di chiamata senza traccia stack
Tuttavia, sfortunatamente (perché voglio fare qualcosa con XNA) sto solo cercando .NET 4.0.
Voglio essere in grado di fare qualcosa di simile:
void MethodA() {
MethodB();
}
void MethodB() {
string callingMethodName = (...?);
Console.WriteLine(callingMethodName);
}
Dove la mia uscita sarebbe MethodA.
So che potrei fare questo tramite analisi dello stack, ma questo è a) inaffidabile e b) sloooow ... quindi mi chiedo se c'è un altro modo per raccogliere tali informazioni, tuttavia, che possono essere ...
Speravo in qualsiasi idea o conoscenza che qualcuno potesse avere sul problema. Grazie in anticipo :)
Passare il nome del metodo di chiamata come stringa? – Oded
@Oded Beh sì, chiaramente potrei chiamare MethodB ("MethodA") ma il punto è che sto provando a farlo dinamicamente, in modo che se cambio MethodA in MethodC non devo modificare anche quella chiamata. – Xenoprimate
Non è riuscito a fare quel punto nella domanda. – Oded