public object Deserialize(TextReader reader)
        {
            string line     = reader.ReadLine();
            string nextLine = null;
            object obj      = Activator.CreateInstance(type);

            if (line != null)
            {
                do
                {
                    IniSectionAttribute secAttr = ParseSectionAttribute(line);
                    if (secAttr != null)
                    {
                        nextLine = reader.ReadLine();
                        PropertyInfo        prop        = SetProperty(obj, nextLine);
                        IniSectionAttribute tempSecAttr = (IniSectionAttribute)Attribute.GetCustomAttribute(prop, typeof(IniSectionAttribute));
                        tempSecAttr = secAttr;
                    }
                    else
                    {
                        PropertyInfo prop = SetProperty(obj, line);
                    }
                    line = reader.ReadLine();
                }while (line != null);
            }
            return(obj);
        }
        private IniSectionAttribute ParseSectionAttribute(string line)
        {
            string result = null;

            if (line.Contains("["))
            {
                string[] tmp = line.Split('[');
                result = tmp[tmp.Length - 1];
                tmp    = result.Split(']');
                result = tmp[0];
                IniSectionAttribute attr = new IniSectionAttribute();
                attr.ElementName = result;
                return(attr);
            }
            return(null);
        }
 private IniSectionAttribute ParseSectionAttribute(string line)
 {
     string result = null;
     if (line.Contains("["))
     {
         string[] tmp = line.Split('[');
         result = tmp[tmp.Length - 1];
         tmp = result.Split(']');
         result = tmp[0];
         IniSectionAttribute attr = new IniSectionAttribute();
         attr.ElementName = result;
         return attr;
     }
     return null;
 }