IEnumerable <t> .Join()</t>的调试内部

时间:2012-02-19 04:44:24

标签: linq join extension-methods inner-join

如何调试Join()扩展方法的内部结构?

我不是在询问如何在链式方法调用之间调试/查看内容。请勿在此示例中查看点之间:myThings.Where().Join();

相反,我希望看到Join()方法用于处理其mojo的中间值或内部内部/外部序列。我有:myThings.Join( a bunch of lambdas );我的keySelectors似乎是要返回正确的数据。但是我的resultSelector永远不会被调用,所以我想看看序列本身和调试。

我觉得有人会推荐resharper(我没有150美元的外壳,所以请只提供免费替代品)。

请回答问题:“如何调试Join()的内部?”

3 个答案:

答案 0 :(得分:2)

要概念性地了解Join的实现方式,请查看Jon Skeet作为EduLinq的一部分重新实现:"Reimplementing LINQ to Objects: Part 19 - Join"。我会从这里开始,因为它可能会让你更深入地了解正在发生的事情,而不仅仅是生成的代码。

如果您仍想使用免费工具反编译生成的代码,例如JustDecompile免费提供。

答案 1 :(得分:1)

我认为在VS中有一个调试选项可以让你调试.net源代码。它应该在菜单Debug-&gt; Options-&gt; General

答案 2 :(得分:0)

使用Reflector .NET 7及更新版本,您可以调试框架类型。您基本上是在调试框架的反编译版本。这是一种很好的学习方式。