Я - относительно новый сотрудник в моей нынешней компании, поэтому я все еще "пью из пожарного рукава" с точки зрения изучения моего программного обеспечения и архитектуры. Во время написания модульных тестов я столкнулся с некоторыми очень большими объектами, скажем для обсуждения «SavedOrder», и мне нужно найти, где найти конкретный фрагмент данных, который я ищу.
Проблема, с которой я столкнулся, заключается в том, что я знаю, что у каждого SavedOrder есть где-то во внутренностях его наследства и члены (у которых есть члены, из которых есть члены, и так далее, и так далее), часть данных ищу.
Пока что я бездумно расширяю свои часы и слежу за объектами, чтобы, надеюсь, найти то, что я ищу. Кто-нибудь знает плагин / технику, чтобы использовать, чтобы найти, имеет ли этот объект что-то типа «Тип A» или что-то со значением «SomeEnum.SomeValue»?
РЕДАКТИРОВАТЬ: Все хорошие входные данные, пока ничего, что полностью решает мою цель. Браузеры объектов (Object Browser и Reflector) хорошо просматривают элементы каждого объекта, но с целью связать точку 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);
}
}
Кто знает, может быть, не возможно.