/// <summary>
 ///    Returns all instance properties define for the type and its base type
 /// </summary>
 /// <param name="type"> The <see cref="System.Type" /> to inspect for all the properties</param>
 /// <returns>
 ///    An  Eumeration of <see cref="PropertyInfo" /> for each properties avaialble in the given <see cref="System.Type" />
 ///    hierarchy.
 /// </returns>
 public static IEnumerable <PropertyInfo> AllProperties(this Type type)
 {
     return(ReflectionHelper.AllPropertiesFor(type));
 }