Wie erhalte ich eine Liste aller Eigenschaften einer Klasse?
c#
.net
reflection
properties
nawfal
quelle
quelle
internal
Eigenschaften. Vielleicht bin ich der einzige, der an derprivate
/non-public
-Syntax hängen geblieben ist ?using System.Reflection
Direktive und dasSystem.Reflection.TypeExtensions
Paket verwiesen wird - dies stellt die fehlende API-Oberfläche über ErweiterungsmethodenSie können Reflection verwenden , um dies zu tun: (aus meiner Bibliothek - dies erhält die Namen und Werte)
Dieses Ding funktioniert nicht für Eigenschaften mit einem Index - dafür (es wird unhandlich):
So erhalten Sie nur öffentliche Eigenschaften: ( siehe MSDN in der BindingFlags-Enumeration )
Dies funktioniert auch bei anonymen Typen!
Um nur die Namen zu bekommen:
Und es ist ungefähr das gleiche für nur die Werte, oder Sie können verwenden:
Aber das ist etwas langsamer, würde ich mir vorstellen.
quelle
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)
odert.GetProperties(BindingFlags.Static | BindingFlags.Public)
Diese Funktion dient zum Abrufen einer Liste der Klasseneigenschaften.
quelle
yield return
. Es ist keine große Sache, aber es ist eine bessere Art, es zu tun.Sie könnten den
System.Reflection
Namespace mit demType.GetProperties()
mehod verwenden:quelle
Basierend auf der Antwort von @ MarcGravell ist hier eine Version, die in Unity C # funktioniert.
quelle
Das ist meine Lösung
quelle
Sie können Reflexion verwenden.
quelle
Ich stehe auch vor solchen Anforderungen.
Aus dieser Diskussion habe ich eine andere Idee,
Hier wird auch der Eigenschaftsname angezeigt.
Dies zeigt die Anzahl der Eigenschaften.
Dank an alle. Das ist eine nette Diskussion.
quelle
Hier ist @lucasjones Antwort verbessert. Ich habe Verbesserungen hinzugefügt, die im Kommentarbereich nach seiner Antwort erwähnt wurden. Ich hoffe, jemand wird dies nützlich finden.
quelle