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.
No answers yet.
Faça login para deixar uma resposta