【发布时间】:2014-02-11 21:27:04
【问题描述】:
Visual Studio 有一个名为“跳过属性和运算符(仅限托管)”的调试设置。这个设置很有用,我一般都开启了。
现在,每隔一段时间,项目中就会有一个属性设置器/获取器,这相当复杂,在调试时我希望能够进入它。有没有办法用一个属性来装饰这个属性,以便调试器忽略该属性的上述设置并允许我进入它?
基本上,它应该与DebuggerStepThroughAttribute相反。
或者还有其他方法可以实现吗?我目前所做的是在单步执行之前在属性 getter/setter 中设置一个断点,但这不是很方便,因为它需要我在每次单步执行特定代码片段时添加/删除断点。
编辑:cmets 建议重构。不过,这并不能真正回答我的问题,在我的情况下也没有必要。我所说的“参与”并不是指大量代码或一些资源密集型代码。在我的例子中,属性设置器触发对象内部的计算(O(1) 复杂度,大约两毫秒)。但是,该计算并不那么明显,并且每隔一段时间我想通过按下 step into 键来进入属性设置器。
【问题讨论】:
-
属性如何比设置断点更灵活?
-
在我不想进入该属性的情况下会遇到断点。这就是为什么我必须在属性访问之前插入它并在之后删除它。
-
但是断点可以是有条件的,而属性是编译的?
-
好吧,如果你认为我的要求可以通过条件断点来满足,欢迎你回答问题。
-
RE:DataBinding,如果您在用于数据绑定的属性中做了大量工作,那么您的 UI 将无法响应。您的视图模型应该非常简单,并且应该由可能从 UI 异步运行的其他代码填充。
标签: c# .net visual-studio debugging