Получить свойства объекта с отражением, кроме свойств экземпляра
Я хочу перечислить все свойства объекта, используя отражение, но я хочу исключить свойства, которые ссылаются на объекты (это должно быть достаточно быстро, потому что я использую решение для кэширования с использованием 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);