With the disassembly optimization set to .NET Framework 3.5, here's how a simple query expression looks:
That's pretty cool, but it doesn't really give any insight into the compiler magic happening under the hood. To get a better picture of this, the optimization setting should be changed to ".NET 2.0." Once this is done, the disassembler no longer generates query syntax, and it uses anonymous methods. This makes it plain to see which extension methods are compiled for the different clauses of a query expression. In addition, the method calls are hyperlinked, making it easy to dig deeper.
While this is all very helpful, I do have a few complaints:
Like this:
Regardless of these issues, which I hope are addressed (are you reading this, Roeder?!?), the .NET Reflector is a life-changing tool. If it isn't already a part of your developer's toolbox, you should go download it right now.
1I'm one of them.
Page rendered at Tuesday, January 06, 2009 12:11:30 AM (Eastern Standard Time, UTC-05:00)