Отладка внутренних функций IEnumerable <T>.Join () - PullRequest
3 голосов
/ 19 февраля 2012

Как я могу отладить внутренности метода расширения Join ()?

Я НЕ спрашиваю, как отлаживать / видеть вещи между вызовами цепочечных методов.НЕ пытайтесь посмотреть между точками в этом примере: myThings.Where().Join();

Вместо этого я хочу увидеть промежуточные значения или внутренние внутренние / внешние последовательности, которые метод Join () использует для работы своего mojo.У меня есть: myThings.Join( a bunch of lambdas ); Кажется, мой keySelectors возвращает правильные данные.Но мой resultSelector никогда не вызывается, поэтому я хочу посмотреть сами последовательности и отладить.

Я чувствую, что кто-то порекомендует resharper (у меня нет $ 150 на раскладку, поэтому, пожалуйста, предлагайте только бесплатные альтернативы).

Пожалуйста, ответьте на вопрос: «Как я могу отладить внутреннюю часть Join ()?»

Ответы [ 3 ]

2 голосов
/ 19 февраля 2012

Чтобы получить концептуальный взгляд на реализацию Join, взгляните на повторную реализацию Джона Скита в рамках EduLinq: "Переопределение LINQ для объектов: Часть 19 - Соединение" .Я бы начал здесь, потому что это, вероятно, даст вам гораздо больше понимания того, что происходит, чем просто играть главную роль в сгенерированном коде.

Если вы все еще хотите декомпилировать сгенерированный код, используя бесплатный инструмент, например, JustDecompile доступно бесплатно.

1 голос
/ 19 февраля 2012

Я думаю, что в VS есть опция отладки, позволяющая отлаживать исходный код .net.Должен быть в меню Debug-> Options-> General

0 голосов
/ 19 февраля 2012

Используя Reflector .NET 7 и новее, вы можете отлаживать типы фреймворков. Вы в основном отлаживаете декомпилированные версии фреймворка. Это отличный способ учиться.

...