/// <summary>
 /// Constructor.
 /// </summary>
 public SettingsPropertyDescriptor(PropertyInfo property)
     : this(SettingsClassMetaDataReader.GetName(property),
            SettingsClassMetaDataReader.GetType(property).FullName,
            SettingsClassMetaDataReader.GetDescription(property),
            SettingsClassMetaDataReader.GetScope(property),
            SettingsClassMetaDataReader.GetDefaultValue(property))
 {
 }
        /// <summary>
        /// Returns a list of <see cref="SettingsPropertyDescriptor"/> objects describing each property belonging
        /// to a settings group.
        /// </summary>
        public static List <SettingsPropertyDescriptor> ListSettingsProperties(SettingsGroupDescriptor group)
        {
            Type settingsClass = Type.GetType(group.AssemblyQualifiedTypeName);

            return(CollectionUtils.Map <PropertyInfo, SettingsPropertyDescriptor, List <SettingsPropertyDescriptor> >(
                       SettingsClassMetaDataReader.GetSettingsProperties(settingsClass),
                       delegate(PropertyInfo p)
            {
                SettingsPropertyDescriptor info = new SettingsPropertyDescriptor(
                    SettingsClassMetaDataReader.GetName(p),
                    SettingsClassMetaDataReader.GetType(p).FullName,
                    SettingsClassMetaDataReader.GetDescription(p),
                    SettingsClassMetaDataReader.GetScope(p),
                    SettingsClassMetaDataReader.GetDefaultValue(p));
                return info;
            }));
        }