Diccionarios "Comparar profundo"
-
29-10-2019 - |
Pregunta
Estoy haciendo "comparación profunda" de las estructuras de datos para el registro de auditorías (quién cambió qué miembros, cuándo). Estoy usando la reflexión para esto, recurriendo en las estructuras y comparándolas. Sin embargo, he tocado un problema con los que contienen diccionarios.
Puedo detectar que un miembro es un diccionario de typeof(IDictionary).IsAssignableFrom(memberType)
. Mi plan es luego recolectar las claves que están presentes en ambos objetos y continuar la recursión en ellos. Sin embargo, IDictionary.Keys
es un ICollection
, que no se extiende por Linq. Sin saber el tipo de claves, ¿cómo podría lograr esto?
Tal vez este método es subóptimo (no tengo tan experiencia en el combo de genéricos/reflexión), ¿debería hacer esto de otra manera?
No hay solución correcta