Eu quero analisar dinamicamente uma árvore de objeto para fazer alguma validação personalizada. A validação não é importante como tal, mas quero entender melhor a classe PropertyInfo.
Estarei fazendo algo assim,
public bool ValidateData(object data)
{
foreach (PropertyInfo propertyInfo in data.GetType().GetProperties())
{
if (the property is a string)
{
string value = propertyInfo.GetValue(data, null);
if value is not OK
{
return false;
}
}
}
return true;
}
Na verdade, a única parte que me interessa no momento é 'se a propriedade for uma string'. Como posso descobrir de um objeto PropertyInfo que tipo é.
Terei que lidar com coisas básicas como cordas, ints, duplos. Mas também terei de lidar com objetos e, se for o caso, precisarei percorrer a árvore de objetos mais para baixo dentro desses objetos para validar os dados básicos dentro deles, eles também terão strings etc.
Obrigado.
c#
.net
reflection
Peter
fonte
fonte
string
eString
são iguais.string
é um alias paraString
.string
é um apelido paraSystem.String
. Pode fazer diferença porque para usarString
é preciso adicionar ausing System;
linha. Meus 2 centavos;)Acabei de topar com este ótimo post. Se você está apenas verificando se os dados são do tipo string, talvez possamos pular o loop e usar esta estrutura (na minha humilde opinião)
fonte