Avatar ·

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

¡Hola a todos! Soy nuevo en C# y me encontré con esta tarea: tengo un objeto de la clase Person, y quiero obtener dinámicamente el valor de sus propiedades, pero el nombre de la propiedad se pasa como una cadena. Por ejemplo, el usuario ingresa "Name" o "Age", y necesito devolver el valor correspondiente. Aquí está mi clase: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } ``` Creo un objeto: ```csharp var person = new Person { Name = "Иван", Age = 30, City = "Москва" }; string propertyName = "Name"; // o "Age", "City" ``` ¿Cómo obtengo el valor de person.Name si solo conozco la cadena "Name"? He oído hablar de la reflexión, pero no entiendo cómo aplicarla. Probé algo como: ```csharp var value = person.GetType().GetProperty(propertyName).GetValue(person); ``` Pero esto da un error si la propiedad no existe. ¿Cómo manejar correctamente estos casos? ¿Hay una forma más segura? Gracias de antemano.