Получить свойства объекта с отражением, кроме свойств экземпляра

Я хочу перечислить все свойства объекта, используя отражение, но я хочу исключить свойства, которые ссылаются на объекты (это должно быть достаточно быстро, потому что я использую решение для кэширования с использованием Redis/Booksleve).

В настоящее время у меня есть следующее, но это возвращает все свойства объекта, включая члены экземпляра:

var propertyNameAndValues = member.GetType().GetProperties().Where(m => m.GetGetMethod() != null).ToDictionary(i => i.Name, i => Encoding.UTF8.GetBytes(i.GetGetMethod().Invoke(member, null).ToString()));
var task = conn.Hashes.Set(db, string.Format("members:{0}", member.id), propertyNameAndValues);

1 ответ

Решение

Используйте перегрузкуGetProperties где вы можете указать BindingFlags аргумент и обеспечить BindingFlags.Static включен, но BindingFlags.Instance исключен

Например:

var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
var properties = member.GetType().GetProperties(flags);
Другие вопросы по тегам