Me he preguntado acerca de lo apropiado de la reflexión en el código C#. Por ejemplo, he escrito una función que itera a través de las propiedades de un objeto fuente dado y crea una nueva instancia de un tipo especificado, luego copia los valores de las propiedades con el mismo nombre de una a la otra. Creé esto para copiar datos de un objeto LINQ autogenerado a otro con el fin de evitar la falta de herencia de múltiples tablas en LINQ.Justificación para la reflexión en C#
Sin embargo, no puedo evitar pensar que un código como este es realmente 'hacer trampa', es decir, en lugar de utilizar las construcciones de lenguaje proporcionadas para lograr un fin dado, te permite eludirlas.
¿Hasta qué punto es aceptable este tipo de código? ¿Cuáles son los riesgos? ¿Cuáles son los usos legítimos de este enfoque?
Si me preguntaran cuáles son los pro y los contras de la reflexión, ¿sería esta una respuesta adecuada? –