Je souhaite analyser dynamiquement une arborescence d'objets pour effectuer une validation personnalisée. La validation n'est pas importante en tant que telle, mais je souhaite mieux comprendre la classe PropertyInfo.
Je vais faire quelque chose comme ça,
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;
}
Vraiment, la seule partie qui me préoccupe pour le moment est «si la propriété est une chaîne». Comment puis-je savoir à partir d'un objet PropertyInfo de quel type il s'agit.
Je vais devoir m'occuper de trucs basiques comme des cordes, des entiers, des doubles. Mais je devrai également m'occuper des objets, et si c'est le cas, je devrai parcourir l'arborescence d'objets plus bas à l'intérieur de ces objets pour valider les données de base à l'intérieur, ils auront également des chaînes, etc.
Merci.
la source
string
etString
sont égaux.string
est un alias pourString
.string
s'agit d'un aliasSystem.String
. Cela pourrait faire une différence car pour utiliser,String
vous devez ajouter lausing System;
ligne. Mes 2 cents;)Je viens de tomber sur ce super article. Si vous vérifiez simplement si les données sont de type chaîne, nous pouvons peut-être ignorer la boucle et utiliser cette structure (à mon humble avis)
la source