Ostatnio zauważyłem, że debuger Visual Studio 2010 wciąż przeskakuje do tej metody, która jest oznaczona atrybutem [DebuggerStepThrough]
.Tryb debugowania Przez ignorowanie
callstack wygląda mniej więcej tak:
- Page.OnLoad wywołuje metodę IsSubclassOfGeneric w klasie oznaczonej jako
[DebuggerStepThrough]
. - IsSubclassOfGeneric wzywa GetHierarchy jak pokazano, przechodząc wyrażenia lambda do System.Linq.Enumerable.Any przedłużenia.
- Visual Studio wprowadza kroki do metody, jak pokazano powyżej.
właśnie otrzymuje wezwanie Linq z pętlą foreach jak poniżej, bezskutecznie:
To jest trochę kłopotliwe, gdyż ta metoda nazywa się dość często, a Nie rozumiem, dlaczego atrybut jest ignorowany.
To na pewno wygląda tak. Jestem zaskoczony, że nie zauważyłem tego wcześniej. Wydaje mi się, że jedynym sposobem, w jaki mogę uzyskać to, czego chcę, jest jawne zaimplementowanie klas IEnumerable/IEnumerator, co jest trochę irytujące, ale ogólnie może być tego warte. –