Jak uzyskać listę wszystkich właściwości klasy?
c#
.net
reflection
properties
nawfal
źródło
źródło
internal
właściwości. Może jestem jedynym, który rozłączył się przy składniprivate
/non-public
?using System.Reflection
dyrektywy iSystem.Reflection.TypeExtensions
pakietu - zapewnia to brakującą powierzchnię API za pomocą metod rozszerzeniaMożesz użyć Reflection, aby to zrobić: (z mojej biblioteki - pobiera nazwy i wartości)
Ta rzecz nie będzie działać dla właściwości z indeksem - w tym celu (robi się nieporęczna):
Ponadto, aby uzyskać tylko właściwości publiczne: ( zobacz MSDN na wyliczeniu BindingFlags )
Działa to również na anonimowych typach!
Aby uzyskać tylko nazwy:
I to jest prawie tak samo dla samych wartości, lub możesz użyć:
Ale to trochę wolniejsze, wyobrażam sobie.
źródło
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)
lubt.GetProperties(BindingFlags.Static | BindingFlags.Public)
Ta funkcja służy do pobierania listy właściwości klasy.
źródło
yield return
. To nie jest wielka sprawa, ale to lepszy sposób na zrobienie tego.Możesz użyć
System.Reflection
przestrzeni nazw zType.GetProperties()
metodą:źródło
Na podstawie odpowiedzi @ MarcGravell, oto wersja, która działa w Unity C #.
źródło
To jest moje rozwiązanie
źródło
Możesz użyć odbicia.
źródło
Mam również do czynienia z tego rodzaju wymogami.
Z tej dyskusji otrzymałem inny pomysł,
To także pokazuje nazwę właściwości.
pokazuje liczbę właściwości.
Dziękuje za wszystko. To miła dyskusja.
źródło
Oto ulepszona odpowiedź @lucasjones. Wprowadziłem ulepszenia wymienione w sekcji komentarzy po jego odpowiedzi. Mam nadzieję, że ktoś uzna to za przydatne.
źródło