2011-04-03 52 views
1

成员是否有.NET(C#)的方式时,使用调试器知道一个对象是目前在什么收藏。跟踪哪些收藏类的实例/对象是

我有一个情况的类实例正在进出不同的列表和阵列,并且正试图追踪它当前在哪个时间点的哪些集合,即当我打断点时。

我能想到的唯一解决方案是编码某种类型的跟踪器类。希望调试器可能有办法跟踪这一点。

编辑:我想它有点像您可以在调试器中展开集合并查看成员的方式,除非我想做相反的事情。

谢谢。

+0

可能的重复http://stackoverflow.com/questions/707421/track-all-object-references-in-c – BrokenGlass 2011-04-03 22:51:58

+0

听起来像一场噩梦。祝你好运! – ChaosPandion 2011-04-03 22:55:44

回答

1

听起来好像你会从使用observer pattern那里受益,它会创建一个“对象之间的一对多依赖关系,以便当一个对象改变状态时,它的所有依赖关系会被自动通知和更新”。基本上,每当一个项目被添加到一个集合中时,你就有一个接收通知的对象。

.NET 4内置了这种模式的实现。检查出Observer Design Pattern in .NET

接口文档:

这也可能是值得看ObservableCollection<T>类,并看看是否能够提供您所需要的功能。它在.NET 3中可用。

+0

感谢穴居人,ObservableCollection似乎做我需要的东西。我会给它一个镜头。 – Matt 2011-04-04 06:32:01

0

我不认为有这样的内置任何东西,但它会很容易创建。只需将表达式添加到Watch窗口,每个集合一个。

或者在您的代码中创建一个用于搜索集合并返回(例如,一串字符串(集合名称))的函数 - 并从Watch窗口调用该函数。

+0

谢谢,我会试一试。 – Matt 2011-04-04 05:57:07