自动实现的属性设置器上的条件断点

时间:2014-12-31 19:44:05

标签: c# debugging properties visual-studio-2013 breakpoints

假设我在类ClassName中有这个自动实现的属性:public int Counter{ get; set; }

我还没有成功地在Visual Studio 2013中的C#自动实现的属性设置器上有一个条件断点。具体来说,在设置的新值上。 (例如,我想在设置为负数时将其断开。)

我知道还有其他解决方案,比如分解属性以使其不是自动实现的属性,或者破坏设置该属性的所有位置。 但我希望能够在没有繁琐的解决方法的情况下做到这一点。

我使用https://stackoverflow.com/a/6713867/119418

中的以下提示成功地在自动实现的属性设置器上进行了断点操作

使用Visual Studio 2008,2010,2012,2013:

  1. 转到“断点”窗口
  2. New-> Break at Function ...
  3. 对于获取,请键入:ClassName.get_Counter()

    对于该集,请键入:ClassName.set_Counter(int)

  4. 当断点被击中时,你会得到一个“No Source Available”,但是你将获得调用堆栈中的调用位置。

2 个答案:

答案 0 :(得分:1)

不完全是问题的答案(对于Visual Studio 2013),但getter和setter的断点预计可以在Visual Studio 2015中使用。

http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/14/set-breakpoints-on-auto-implemented-properties-with-visual-studio-2015.aspx

答案 1 :(得分:0)

我不是100%肯定你试图做的事情,如果我得到了正确的你只想设置一个断点到一个属性,如果有人将其设置为负值

我可能会朝着错误的方向前进但是你在寻找这种事情

private int _age;
public int Age
{
      get{ return _age;  }
      set{ 
        if(value < 0) 
        { throw somthing;} //add a breakpoint here 
        else{ _age = value;} 
         }
}// im writing this directly in the browser so forgive space indentation etc 

这可能不是您想要的,但我确实认为这是实现您的要求的最简单方法