/// <summary>
        /// Write the section to the writer
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="onlyProperties"></param>
        public void Write(TextWriter writer, bool onlyProperties)
        {
            BeforeSave();
            try {
                Attribute[]         classAttributes     = Attribute.GetCustomAttributes(this.GetType());
                IniSectionAttribute iniSectionAttribute = null;
                foreach (Attribute attribute in classAttributes)
                {
                    if (attribute is IniSectionAttribute)
                    {
                        iniSectionAttribute = (IniSectionAttribute)attribute;
                        break;
                    }
                }
                if (iniSectionAttribute == null)
                {
                    throw new ArgumentException("Section didn't implement the IniSectionAttribute");
                }

                if (!onlyProperties)
                {
                    writer.WriteLine("; {0}", iniSectionAttribute.Description);
                }
                writer.WriteLine("[{0}]", iniSectionAttribute.Name);

                foreach (IniValue value in Values.Values)
                {
                    value.Write(writer, onlyProperties);
                }
            } finally {
                AfterSave();
            }
        }
 private static string getSectionName(Type iniSectionType)
 {
     Attribute[] classAttributes = Attribute.GetCustomAttributes(iniSectionType);
     foreach (Attribute attribute in classAttributes)
     {
         if (attribute is IniSectionAttribute)
         {
             IniSectionAttribute iniSectionAttribute = (IniSectionAttribute)attribute;
             return(iniSectionAttribute.Name);
         }
     }
     return(null);
 }