Domanda

Un metodo potrebbe essere inlineato; C'è un attributo per prevenirlo ("c'è un ATT per quello"). Tuttavia, apparentemente un metodo potrebbe anche non ottenere il proprio telaio di stack su X64 a causa dell'ottimizzazione della chiamata di coda da parte del jitter (http://www.hanselman.com/blog/releaseisnotdebug64bittoptimizationsandcmethodinlininginreleasebuildcallstacks.aspx). Ciò influirebbe sul comportamento di MethodBase.GetCurrentMethod?

Le discussioni che posso trovare riguardano principalmente in linea (Quando è idoneo un metodo per essere inlineato dal CLR?). Mentre quelle discussioni sono interessanti a sé stanti, il mio problema riguarda davvero quali circostanze - se presenti - MethodBase.GetCurrentMethod può essere affidato a identificare lo stesso metodo in cui il programmatore ha effettuato la chiamata (ad esempio, per l'associazione tardiva a un metodo per il quale il metodo corrente è in realtà un surrogato). In linea è un modo MethodBase.GetCurrentMethod Potrebbe essere ingannato, ma mi chiedo se sia l'unico modo?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top