Avatar ·

Cómo obtener el valor de una propiedad de un objeto por su nombre (cadena) mediante reflexión en C#?

¡Hola a todos! Soy nuevo en C# y me encontré con esta tarea: tengo una clase `Person` con varias propiedades (`Name`, `Age`, `Email`). Necesito escribir un método que tome un objeto de esta clase y una cadena — el nombre de la propiedad, y devuelva el valor de esa propiedad. Es decir, por ejemplo, paso `person` y `"Name"`, y obtengo `"John"`. Sé que esto se puede hacer mediante reflexión (Reflection), pero no entiendo cómo hacerlo correctamente. Esto es lo que he intentado: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } static object GetPropertyValue(object obj, string propertyName) { // ¿Cómo obtener el valor aquí? // Intenté algo como obj.GetType().GetProperty(propertyName), pero no sé qué más hacer. return null; } ``` El problema es que no entiendo cómo llamar al getter de la propiedad si solo sé su nombre como cadena. ¿Es necesario considerar mayúsculas/minúsculas? ¿Qué pasa si la propiedad se llama de