Предоставляя только BindingFlags.Instance
, вы вообще не можете получить никаких свойств, поскольку вы не отправляете предикат модификатора доступа.
В соответствии с вашими потребностями, объедините эти флаги с побитовым оператором ИЛИ |
Документацию можно найти здесь: https://docs.microsoft.com/en-us/dotnet/api/system.reflection.bindingflags?view=netframework-4.8
var children = dog.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
РЕДАКТИРОВАТЬ:
К сожалению, перечисление не имеет никакого значения для фильтрация свойств в соответствии с их типами значений. Чтобы сделать это полным ответом, фильтрация в массив, содержащий только свойство Breed
, предоставлена @ const-phi:
var result = children.Where(c => c.PropertyType.IsClass).ToArray(); // Const Phi