Comment obtenir une liste de toutes les propriétés d'une classe?
c#
.net
reflection
properties
nawfal
la source
la source
internal
propriétés. Peut-être que je suis le seul à avoir raccroché sur la syntaxeprivate
/non-public
?using System.Reflection
directive et leSystem.Reflection.TypeExtensions
package sont référencés - cela fournit la surface API manquante via des méthodes d'extensionVous pouvez utiliser Reflection pour ce faire: (à partir de ma bibliothèque - cela obtient les noms et les valeurs)
Cette chose ne fonctionnera pas pour les propriétés avec un index - pour cela (cela devient trop lourd):
En outre, pour obtenir uniquement les propriétés publiques: ( voir MSDN sur l'énumération BindingFlags )
Cela fonctionne aussi sur les types anonymes!
Pour obtenir simplement les noms:
Et c'est à peu près la même chose pour les valeurs, ou vous pouvez utiliser:
Mais c'est un peu plus lent, j'imagine.
la source
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)
out.GetProperties(BindingFlags.Static | BindingFlags.Public)
Cette fonction permet d'obtenir la liste des propriétés de classe.
la source
yield return
. Ce n'est pas un gros problème, mais c'est une meilleure façon de le faire.Vous pouvez utiliser l'
System.Reflection
espace de noms avec laType.GetProperties()
méthode:la source
Basé sur la réponse de @ MarcGravell, voici une version qui fonctionne dans Unity C #.
la source
Voilà ma solution
la source
Vous pouvez utiliser la réflexion.
la source
Je suis également confronté à ce type d'exigence.
De cette discussion, j'ai eu une autre idée,
Cela montre également le nom de la propriété.
ce nombre montrant de propriétés.
Merci à tous. C'est une belle discussion.
la source
Voici une réponse @lucasjones améliorée. J'ai inclus les améliorations mentionnées dans la section des commentaires après sa réponse. J'espère que quelqu'un trouvera cela utile.
la source