Ho notato recentemente che il debugger di Visual Studio 2010 continua a saltare in questo metodo contrassegnato con l'attributo [DebuggerStepThrough]
.DebuggerStepTrough ignorato
Lo stack simile a questa:
- Page.OnLoad chiama un metodo IsSubclassOfGeneric in una classe contrassegnata come
[DebuggerStepThrough]
. - IsSubclassOfGeneric chiama GetHierarchy come mostrato, passando un'espressione lambda al estensione System.Linq.Enumerable.Any.
- Visual Studio esegue il metodo come illustrato sopra.
Ho appena sostituito la chiamata Linq con un ciclo foreach, come di seguito, senza alcun risultato:
Questo è un po 'di un fastidio, dal momento che questo metodo viene chiamato abbastanza di frequente, e Non capisco perché l'attributo viene ignorato.
Appare certamente in questo modo. Sono francamente stupito di non averlo notato prima. Sembra che l'unico altro modo in cui posso ottenere ciò che voglio è implementare esplicitamente le classi IEnumerable/IEnumerator, il che è un po 'fastidioso, ma nel complesso potrebbe valerne la pena. –