Nel mio precedente post di stamattina riportavo un’alternativa per l’implementazione di INotifyPropertyChanged basata sullo StackTrace.
Come si evince dallo stesso Namespace, la classe StackTrace viene utilizzata per scopi relativi alla diagnostica, quindi il primo pensiero quasi naturale é stato “ok, in release non andrà”!
Poi penso... beh, ma Exception ha una property StackTrace che funziona anche in Release.
Creo un progettino Console di prova, creo un po’ di metodi “a cascata” per riempire lo StackFrame. Compilo in Release, copio solo l’eseguibile… Funziona!
Ohibò!
Erroneamente convinto del risultato, passo all’implementazione. Il tempo stringe, vorrei “evadere” l’argomento e non provo più in “stand-alone”.
Dopo la segnalazione di Corrado, riprovo, con risultati strani (lo StackTrace traccia solo alcuni passaggi saltandone alcuni intermedi) fino a quando arrivo a verificare che in Release probabilmente lo “scope” del tracciamento effettivamente avviene ma è solo interno alla classe o qualcosa di simile. (E mi verrebbe da chiedermi come funziona Exception.StackStrace...)
Morale: ricordo a me stesso ancora una volta che nonostante il tempo sia tiranno, non bisogna mai aver fretta di arrivare alla conclusione. Devo imparare a pensare “piuttosto lascia perdere”...