Can't set breakpoints on an auto-property setter ? Why?
Apparently VS 2008 does not allow setting a breakpoint just on the setter of an auto-property.
I.e. if I define an auto-property like this:
public int CurrentFramesize
{
get;
protected set;
}
and then try to set a breakpoint on the setter line, the whole auto-p开发者_如何转开发roperty turns breakpoint-red.
This works just fine for normal properties, so any idea why auto-properties get this special (restrictive) treatment? Are they more than just syntactic sugar to normal properties with a hidden backing field?
Using Visual Studio 2008, 2010, 2012:
- Go to the Breakpoint window
- New->Break at Function…
For the get, type:
ClassName.get_CurrentFramesize()
For the set, type:
ClassName.set_CurrentFramesize(int)
You'll get a "No Source Available" when the breakpoint is hit, but you'll get the calling location in the call stack.
I found this solution here: http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a
See also: Debugging automatic properties
The short answer is: this bug feature ended up on the cutting room floor for VS2008.
(Longer answer - hat tip @jdk)
All we've got is a vague promise that it's being considered for vNext.
This feature is implemented in Visual Studio 2015
http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/14/set-breakpoints-on-auto-implemented-properties-with-visual-studio-2015.aspx
No you can't set a break point on them, but then what would you check? The variable for storage of the auto-property is only assigned at runtime and as such there isn't a variable for the debugger to show/access.
精彩评论