Muszę pobrać wszystkie właściwości za pomocą odbicia w kolejności, w jakiej są zadeklarowane w klasie. Według MSDN nie można zagwarantować zamówienia podczas korzystaniaGetProperties()
Metoda GetProperties nie zwraca właściwości w określonej kolejności, takiej jak kolejność alfabetyczna lub deklaracja.
Ale przeczytałem, że istnieje obejście polegające na porządkowaniu właściwości według MetadataToken
. Więc moje pytanie brzmi: czy to jest bezpieczne? Nie mogę znaleźć żadnych informacji na ten temat w witrynie MSDN. Czy jest jakiś inny sposób rozwiązania tego problemu?
Moja obecna realizacja wygląda następująco:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);