Ich muss alle Eigenschaften mithilfe von Reflection in der Reihenfolge abrufen, in der sie in der Klasse deklariert sind. Laut MSDN kann die Bestellung bei Verwendung nicht garantiert werdenGetProperties()
Die GetProperties-Methode gibt keine Eigenschaften in einer bestimmten Reihenfolge zurück, z. B. in alphabetischer Reihenfolge oder in Deklarationsreihenfolge.
Aber ich habe gelesen, dass es eine Problemumgehung gibt, indem die Eigenschaften nach dem sortiert werden MetadataToken
. Meine Frage ist also, ist das sicher? Ich kann anscheinend keine Informationen auf MSDN darüber finden. Oder gibt es eine andere Möglichkeit, dieses Problem zu lösen?
Meine aktuelle Implementierung sieht wie folgt aus:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);