Bamboo.Prevalence.XPath.TypeInfoCache.FindNavigableProperties C# (CSharp) Метод

FindNavigableProperties() приватный Метод

private FindNavigableProperties ( object o ) : IValueProvider[]
o object
Результат IValueProvider[]
		private IValueProvider[] FindNavigableProperties(object o)
		{
			if (o.GetType().IsPrimitive)
			{
				return EmptyValueProviderArray;
			}

			ArrayList children = new ArrayList();

			BindingFlags flags = BindingFlags.Instance | BindingFlags.Public;
			foreach (MemberInfo mi in o.GetType().FindMembers(MemberTypes.Property | MemberTypes.Field, flags, null, null))
			{
				PropertyInfo pi = mi as PropertyInfo;
				if (null != pi)
				{
					if (pi.CanRead && 0 == pi.GetGetMethod().GetParameters().Length)
					{					
						children.Add(new PropertyInfoValueProvider(pi));
					}
				}
				else
				{
					children.Add(new FieldInfoValueProvider((FieldInfo)mi));
				}
			}

			return (IValueProvider[])children.ToArray(typeof(IValueProvider));
		}
	}