如何调试Visual studio 2010中设置的属性
本文关键字:2010 设置 属性 studio Visual 何调试 调试 | 更新日期: 2023-09-27 18:06:31
假设我有这个属性
public ISetting Setting { get; set; }
如何在集合处获得断点?这样程序在设置值时会暂停。
我试着这样做
public IDatabaseConnectionSetting ConnectionSetting {
get;
set;
}
并将断点放在set;
行上,但仍然不起作用。红色断点突出显示整个属性声明
这里有一个更好的解决方案:不能在auto-property setter上设置断点吗?为什么?
使用Visual Studio 2008,2010, 2012:
进入断点窗口
New->Break at Function…
对于get,输入:ClassName.get_CurrentFramesize()
输入:ClassName.set_CurrentFramesize(int)
你会得到一个"没有可用的来源";当遇到断点时,您将获得调用堆栈中的调用>位置。
我找到了这个解决方案:http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/b1dd0dc3-e9c1-402a-9c79-a5abf7f7286a
参见:调试自动属性
使用full property而不是autoproperty。
快捷方式是propfull
private ISetting setting;
public ISetting Setting
{
get
{
return setting;
}
set
{
setting = value;
}
}
要使用代码段快捷方式,请键入propfull
,然后按两次TAB
。
不行。自动属性的编译方式与后备存储类似。我认为没有理由在它们上允许断点,因为你必须在某个地方分配它们,检查那里的属性。
private bool TestProperty { get; set; }
被编译成
[CompilerGenerated]
private bool <TestProperty>k__BackingField;
[CompilerGenerated]
private void set_TestProperty(bool value)
{
this.<TestProperty>k__BackingField = value;
}
[CompilerGenerated]
private bool get_TestProperty()
{
return this.<TestProperty>k__BackingField;
}