现在我正在查看一些C#代码中的一个错误,我需要在某个位置获取给定的对象实例。我在调试器的那个位置坐在一个断点上,可以跳回堆栈并查看我需要获取的对象实例。我怀疑是否有办法从我拥有的实例(foo.bar.baz.bla.bla.bla
或类似的东西)中获得该实例,但我对代码知之甚少,无法知道如何找到它。找到在调试器中获取对象实例的方法?
假设的例子:
我坐在调试器在线路2485在某一简化代码,实现了程序需要,就在这里,设置封闭
WizBang
对象的FooBat
财产(调用函数27调用调用堆栈的函数被调用),但是我没有任何直接引用的封装WizBang
对象。不过,我怀疑我有权访问的其他对象中有一个可以访问某些可以访问封闭对象的内容。但是,这给我提供了大约10K个东西,顺便说一下,我还可以访问42个不同的WizBang
对象,这些对象不是我想要的对象,因此我还需要检查它是否与上述27个步骤完全相同堆叠。如果我能找到如何访问它,我可以在这里添加SomeExp.FooBat = true;
2485行,并关闭这个错误!
我的问题是:有没有人提出,使用反射和杂音力搜索属性和成员的链,找到一个给出所需对象实例的工具吗?
是的,我知道这是一个O(b
d
)
问题,往往是行不通的,但它的计算时间,不是程序员的时间,当它的工作,这将是太棒了!
p.s.我给它比我想要的更少(甚至现在的<g/>
)。
这有点不清楚。你能提供一个例子吗? – Pedro 2009-07-01 17:59:55
我试图澄清这个问题,但我想不出比问题中已有的更好的例子。 – BCS 2009-07-01 19:48:02
详细说明你的意思是“发现”。你想在调试器中查看实例成员,你想获得它们的源位置,你想创建它的一个实例... etc – 2009-07-01 20:11:25