existe uma maneira de obter o valor de uma propriedade de um objeto com base em seu nome?
Por exemplo, se eu tiver:
public class Car : Vehicle
{
public string Make { get; set; }
}
e
var car = new Car { Make="Ford" };
Eu quero escrever um método onde eu possa passar o nome da propriedade e ele retornaria o valor da propriedade. ou seja:
public string GetPropertyValue(string propertyName)
{
return the value of the property;
}
c#
asp.net
reflection
Codificador 2
fonte
fonte
Você teria que usar reflexão
Se você quer ser realmente chique, pode torná-lo um método de extensão:
E depois:
fonte
car
Você quer Reflexão
fonte
Amostra simples (sem código rígido de reflexão de gravação no cliente)
fonte
Além disso, outros caras respondem: é fácil obter o valor da propriedade de qualquer objeto usando o método Extension, como:
O uso é:
fonte
Expandindo a resposta de Adam Rackis - podemos tornar o método de extensão genérico da seguinte maneira:
Você também pode usar algum tratamento de erros, se quiser.
fonte
Para evitar a reflexão, você pode configurar um Dicionário com seus nomes de propriedade como chaves e funções na parte do valor do dicionário que retorna os valores correspondentes das propriedades solicitadas.
fonte