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; }