¿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.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs