Как мне получить список всех свойств класса?
c#
.net
reflection
properties
Навфал
источник
источник
internal
свойства. Может быть, я единственный, кто зациклен наprivate
/non-public
синтаксис?using System.Reflection
директива иSystem.Reflection.TypeExtensions
пакет, на который есть ссылка - это обеспечивает недостающую поверхность API с помощью методов расширенияВы можете использовать Reflection, чтобы сделать это: (из моей библиотеки - это получает имена и значения)
Эта вещь не будет работать для свойств с индексом - для этого (это становится громоздким):
Кроме того, чтобы получить только открытые свойства: ( см. MSDN в перечислении BindingFlags )
Это работает и для анонимных типов!
Чтобы просто получить имена:
И это примерно то же самое только для значений, или вы можете использовать:
Но это немного медленнее, я думаю.
источник
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)
илиt.GetProperties(BindingFlags.Static | BindingFlags.Public)
Эта функция предназначена для получения списка свойств класса.
источник
yield return
. Это не имеет большого значения, но это лучший способ сделать это.Вы можете использовать
System.Reflection
пространство имен сType.GetProperties()
методом:источник
Основываясь на ответе @ MarcGravell, вот версия, которая работает в Unity C #.
источник
Это мое решение
источник
Вы можете использовать отражение.
источник
Я также сталкиваюсь с такого рода требованиями.
Из этой дискуссии я получил еще одну идею,
Это также показывает имя свойства.
это показывает количество свойств.
Спасибо всем. Это хорошая дискуссия.
источник
Вот улучшенный ответ @lucasjones. Я включил улучшения, упомянутые в разделе комментариев после его ответа. Я надеюсь, что кто-то найдет это полезным.
источник