Actualmente estoy tratando de escribir un método Dump() de LinqPad equivalente a iin C# para mi propio amusment. Me estoy moviendo de Java a C# y esto es un ejercicio en lugar de un requisito comercial. Tengo casi todo funcionando a excepción de Dumping a Dictionary.C# Reflection - ¿Cómo puedo saber si el objeto o es de tipo KeyValuePair y luego lanzarlo?
El problema es que KeyValuePair es un tipo de valor. Para la mayoría de los demás tipos de valor, simplemente llamo al método ToString, pero esto es insuficiente ya que KeyValuePair puede contener Enumerables y otros objetos con métodos ToString no deseados. Entonces necesito averiguar si es un KeyValuePair y luego lanzarlo. En Java podría usar comodines genéricos para esto, pero no sé el equivalente en C#.
Su búsqueda, dado un objeto o, determina si es un KeyValuePair y llama a Print en su clave y valor.
Print(object o) {
...
}
¡Gracias!
Estaba a punto de sugerir exactamente eso ... :) Buena respuesta – Tigraine
Increíble respuesta, muchas gracias – Logan
¿El uso de la reflexión aquí tendrá un gran impacto en el rendimiento? – JDandChips