我是现在公司的一名相对较新的员工,所以我仍然“从消防水管中喝水”。在学习我的软件和架构方面。我发现自己在编写单元测试时会处理一些非常大的对象,让我们讨论一下“SavedOrder”,我需要找到在哪里找到我正在寻找的特定数据。

我遇到的问题是,我知道每个SavedOrder都有,它的遗产和成员(有成员,有成员,等等)的内部,数据我我正在寻找。

现在我发现自己盲目地扩展我的手表并将鼠标放在物体上,希望能找到我想要的东西。有没有人知道用于查找此对象是否具有“类型A”的插件/技术。或某些有价值的东西“SomeEnum.SomeValue”?

编辑:所有好的输入,还没有完全解决我的目标。对象浏览器(对象浏览器和反射器)可以很好地浏览每个对象的成员,但是在将A点连接到D点的目标中,它们实际上只是帮助将A点指向B点或D点到C. / p>

我猜最好描述解决方案的伪c#递归算法将是:

WheresWaldo FindMember(Object o)
{
    foreach(PublicMember member in o)
    {
         if(o.IsType(MyType))
            return Success!;
         else
            return WheresWaldo(member);
    }


}

谁知道,也许不可能。

有帮助吗?

解决方案

我不确定我是否完全跟随你,但也许你可以使用条件断点。在相关代码上设置断点,右键单击并选择条件断点。从这里开始,您可以编写一段代码,每次评估断点时都会对其进行评估。这样,您可以指定仅在满足条件时停止。

编辑:根据您的评论,我会说Reflector可能很有用。它可以选择搜索特定类型或成员。使用相关装配启动Reflector。按F3进行搜索并为成员选择Ctrl-M,然后键入您要查找的成员的名称。您可以打开/关闭完全匹配以帮助您进行搜索。

其他提示

ObjectBrowser 可能就是您想要的使用。您可以使用它搜索属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top