9
votes

Comment puis-je obtenir le nombre d'attributs qu'un objet a?

J'ai une classe avec un certain nombre d'attributs et j'ai besoin de trouver un moyen de compter le nombre de types d'attributs qu'il a. Je tiens à le faire car la classe lit un fichier CSV et si le nombre d'attributs (CSVColumns) est inférieur au nombre de colonnes dans le fichier, des choses spéciales devront se produire. Voici un échantillon de ce que ma classe ressemble à: xxx

J'ai essayé de faire cela: xxx

mais cela a échoué de manière misérablement. Toute aide que vous pourriez donner (liens vers des documents ou d'autres réponses, ou simplement des suggestions) est grandement appréciée!


0 commentaires

4 Réponses :


2
votes

Ceci n'est pas testé et juste éteint le dessus de ma tête xxx


0 commentaires

1
votes

Utilisation de la réflexion Vous avez une méthode getattributes () qui retournera un tableau d'objet (les attributs).

Donc, si vous avez une instance de l'objet, obtenez ensuite le type d'obj.getType (), puis vous pouvez utiliser la méthode getattributes ().


1 commentaires

look ici pour un exemple sur la façon dont getattributes () < / code> peut être utilisé.



11
votes

Étant donné que les attributs sont sur les propriétés, vous devrez obtenir les attributs sur chaque propriété:

Type type = typeof(StaffRosterEntry);
int attributeCount = 0;
foreach(PropertyInfo property in type.GetProperties())
{
 attributeCount += property.GetCustomAttributes(false).Length;
}


0 commentaires

22
votes

Veuillez utiliser le code suivant:

Type type = typeof(YourClassName);
int NumberOfRecords = type.GetProperties().Length;


2 commentaires

Simple et intelligent. +1


Ceci est maintenant >>> objet .getype (). GetProperties (). Longueur (); - Stackoverflow.com / Questions / 42029808 / ...