I spent some time yesterday digging into the internals of the .Net 4 System.Web.Profile namespace. At first, Telerik’s trusty JustDecompile beta seemed unable to help me out; all I could get was the public structure of the classes and none of the implementation. I couldn’t understand what was going on and why JustDecompile couldn’t show me the implementation details or why JD couldn’t even show me the existence of private members. This wasn’t a problem across the board – while digging through the method chains I stumbled across some assemblies where JD was able to show me the full monty, so I figured this was limited to portions of the System.Web.Profile namespace. I eventually ended up grabbing RedGate’s early access build of Reflector 7.5 so I could take a peek at the framework code (my normal Reflector trial expired a while back).
I assumed that the problem was that JustDecompile wasn’t properly decompiling some of these assemblies; bugs of that nature have been filed previously, so I went to Telerik’s public issue tracker to file a bug about this assembly, and in the process was poking around to see if JD was having trouble with the whole System.Web.Profile namespace or just portions of it. While trying to find the limits of the places where JD was having trouble I happened to look at the Assembly Properties in the lower left of the JustDecompile screen and noticed that the Platform Architecture for the assembly I was looking at was x86, not x64, while the processor of the machine I was working on was x64.
Once I opened the proper version of the assembly, JustDecompile was able to show me the implementation details and both private and public members for the classes I was interested in.
Moral of the story? If you’re running JustDecompile on a 64-bit machine, make sure you manually load the 64-bit assemblies (usually found in
%SystemRoot%\Microsoft.Net\Framework64). Don’t trust the JustDecompile LoadFramework dialog to do this for you – that will (as of Beta 2012.1.106.0) load the 32-bit assemblies.
Disclaimer: I am a Telerik MVP primarily for JustCode and JustDecompile.