Avatar ·

Como obter o valor de uma propriedade de objeto pelo seu nome de string através de reflexão em C#?

Olá a todos! Sou novo em C# e me deparei com a seguinte tarefa: tenho um objeto da classe Person e quero obter dinamicamente os valores de suas propriedades, mas o nome da propriedade é passado como uma string. Por exemplo, o usuário digita "Name" ou "Age", e eu preciso retornar o valor correspondente. Aqui está minha classe: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } ``` Eu crio o objeto: ```csharp var person = new Person { Name = "Иван", Age = 30, City = "Москва" }; string propertyName = "Name"; // ou "Age", "City" ``` Como obtenho o valor de person.Name se sei apenas a string "Name"? Ouvi falar sobre reflexão, mas não entendo como aplicá-la. Tentei algo como: ```csharp var value = person.GetType().GetProperty(propertyName).GetValue(person); ``` Mas isso gera um erro se a propriedade não existir. Como lidar corretamente com esses casos? Existe uma maneira mais segura? Desde já, obrigado.