Obtenir propertyinfo valeur
Im essayant d'obtenir la valeur d'un PropertyInfo[]
, mais je ne peux pas le faire fonctionner:
foreach (var propertyInfo in foo.GetType().GetProperties())
{
var value = propertyInfo.GetValue(this, null);
}
Exception: Object does not match target type.
Ce n'est pas comment sa censé pour faire?
De quel type sont
Ne
this
et foo
?Ne
this
contenir la propriété représentée par propertyInfo
?
OriginalL'auteur Johan | 2012-01-31
Vous devez vous connecter pour publier un commentaire.
Vous essayez d'obtenir les propriétés de
this
au moment où vous avez extrait lesPropertyInfo
s defoo.GetType()
. Donc, ce serait plus approprié:C'est en supposant que vous souhaitez obtenir
foo.SomeProperty
etc.propertyInfo
se réfère à chaquepropertyInfo
dans la boucle.OriginalL'auteur Jon Skeet
Vous êtes de plus que l'exception, car
this
n'est pas du même type quefoo
.Vous devriez assurez-vous d'obtenir les propriétés de l'objet de même que vous allez essayer d'obtenir la valeur d'. Je devine à partir de votre code que vous attendez de ce foo dans le champ d'application de la boucle (ce qui n'est pas du tout le cas), alors vous avez besoin de changer la ligne incriminée:
OriginalL'auteur Justin Niessner
Du traitement des propriétés déclarées dans
foo
's type, mais essayez de lire leurs valeurs dethis
, qui, apparemment, n'est pas du même type.OriginalL'auteur Ondrej Tucny