我在C#程序中寻找一个位置,其中已知对象实例的某个属性会更改其值。它是关于某个集合的Count
属性,最终只有2个项目,它应该只有1.我可以看到第一个项目添加到集合的位置,但我不知道第二个来自哪里。该程序处理了许多其他事情,我无法逐步完成每个事情。函数完成后,有趣实例的Count
属性返回2.
在我为这些集合添加项目的地方设置断点并没有帮助。我使用的条件再也不会触发。离开这个条件是无法处理的噪音。
我在$1.Count
更改时尝试添加函数断点,但只要在该对话框窗口中的任意位置单击,就会再次删除该条件。这似乎是Visual Studio 2015中的一个错误。$1
将是我在第一个项目添加到集合时分配的对象ID。我现在想要捕获正在添加的第二个项目。在监视面板中使用$1
可以正常工作,实际上就是在函数完成后我可以看到有趣实例的Count
值的方式。
有人知道在这样的事件上设置断点的方法吗?
答案 0 :(得分:0)
我会将该特定集合包装在代理对象中,并在C#中劫持对Add
的调用。在那里,您可以检查当前Count
并最终致电Debugger.Break();
。
如果你的集合实现了IList
,你可以编写一个自己的实现,并将所有调用转发给内部列表实例。这使得为特定情况添加钩子或断点更加容易。