54 votes

À l'aide de la réflexion, comment détecter les propriétés qui ont des setters ?

J'ai ce code pour parcourir un objet et obtenir toutes ses propriétés par réflexion :

 foreach (var propertyInfo in typeof(TBase).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
    var oldValue = propertyInfo.GetValue(oldVersion, null);
}

Comment puis-je vérifier pour ne regarder que les propriétés qui ont un « Set » ? (Je veux ignorer les valeurs en lecture seule - juste "Obtenir".)

121voto

STO Points 4597

PropertyInfo.CanWrite ( documentation )

ou

PropertyInfo.GetSetMethod ( documentation )

23voto

Kirk Woll Points 34601
propertyInfo.GetSetMethod() != null

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X