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

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

person PanKak    schedule 17.03.2014    source источник


Ответы (1)


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

Например:

var flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
var properties = member.GetType().GetProperties(flags);
person Ani    schedule 17.03.2014
comment
ты забыл передать флаги - person Selman Genç; 17.03.2014