http://reflectorblog.red-gate.com/2012/03/debugging-debugging-experience/ By default Microsoft and 3rd-party assemblies compiled with optimization. So if you step in that code you won't be able to inspect most of local variables and object properties:
Cannot obtain value of the local variable or argument because it is not available at this instruction pointer, possibly because it has been optimized away.
Cannot evaluate expression because the code of the current method is optimized.
And so on.
If you want to be able to inspect any variable\property freely:
1. Turn off loading NGEN-generated assemblies
Start Visual studio with StartVS.cmd
set COMPLUS_ZapDisable=1
cd /d "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\"
devenv.exe
2. Turn off optimizations
Put .ini next to each assembly being debugged
[.NET Framework Debugging Control]
GenerateTrackingInfo=1
AllowOptimize=0