Pregunta

Soy un empleado relativamente nuevo en mi empresa actual, así que todavía estoy "bebiendo de la manguera de incendios". en términos de aprender el software y la arquitectura. Me encontré lidiando con algunos objetos muy grandes mientras escribía pruebas unitarias, digamos para discusión un "Pedido guardado", y necesito encontrar dónde encontrar un dato particular que estoy buscando.

El problema que tengo es que sé que cada orden guardada tiene, en algún lugar dentro de sus herencias y miembros (que tienen miembros, de los cuales tienen miembros, etc.), el dato que yo estoy buscando.

Por ahora, me encuentro expandiendo mis relojes sin pensar y pasando el mouse sobre los objetos para encontrar lo que estoy buscando. ¿Alguien sabe de un complemento / técnica para usar si este objeto tiene algo de "Tipo A"? o algo de valor " SomeEnum.SomeValue " ;?

EDITAR: Todo buen aporte, nada aún que resuelva completamente mi objetivo. Los buscadores de objetos (Object Browser y Reflector) hacen un buen trabajo al examinar los miembros de cada objeto, pero con el objetivo de vincular el punto A al punto D, realmente ayudan a llevar el punto A al punto B o D a C.

Creo que el algoritmo recursivo pseudo c # que mejor describiría una solución sería:

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


}

Quién sabe, tal vez no sea posible.

¿Fue útil?

Solución

No estoy seguro de seguirte por completo, pero quizás podrías usar un punto de ruptura condicional. Establezca un punto de ruptura en el código relevante, haga clic derecho y seleccione el punto de ruptura condicional. Desde aquí puede escribir un fragmento de código, que se evaluará cada vez que se evalúe el punto de interrupción. De esa manera, puede especificar que solo se detenga cuando se cumpla la condición.

EDITAR: Según sus comentarios, diría que Reflector puede ser útil. Tiene la opción de buscar tipos o miembros específicos. Inicie Reflector con sus ensamblajes relevantes. Presione F3 para buscar y seleccione Ctrl-M para miembros y escriba el nombre del miembro que está buscando. Puede activar / desactivar la coincidencia exacta para ayudarlo con la búsqueda.

Otros consejos

ObjectBrowser es probablemente lo que quiere usar. Puede buscar propiedades con eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top