我是我现在公司的一名相对较新的员工,所以在学习软件和架构方面我仍然“从消防水管中喝水”。我发现自己在编写单元测试时处理了一些非常大的对象,比如说讨论“SavedOrder”,我需要找到在哪里可以找到我正在寻找的特定数据。
我遇到的问题是我知道每个 SavedOrder 都有,在它的继承和成员的内部某个地方(谁有成员,谁有成员,等等),我正在寻找的数据为了。
现在我发现自己无意识地扩展我的手表并在物体上徘徊,希望能找到我正在寻找的东西。是否有人知道用于查找该对象是否具有“A 型”或有价值的“SomeEnum.SomeValue”的插件/技术?
编辑:所有好的输入,还没有完全解决我的目标。对象浏览器(对象浏览器和反射器)很好地浏览了每个对象的成员,但在将 A 点链接到 D 点的目标中,它们实际上只是帮助将 A 点连接到 B 点或 D 到 C 点。
我想最能描述解决方案的伪 c# 递归算法是:
WheresWaldo FindMember(Object o)
{
foreach(PublicMember member in o)
{
if(o.IsType(MyType))
return Success!;
else
return WheresWaldo(member);
}
}
谁知道呢,也许不可能。