protected internal override void ReadSelfFromXml(XmlElement xel) { base.ReadSelfFromXml(xel); XmlNodeList xnl = xel.SelectNodes("property.children/property"); foreach (XmlNode xn in xnl) { string subtype = ReadAttribute(xn as XmlElement, "subtype"); Properties propType = PropertyFactory.ConvertToPropertyType(subtype); Property prop = PropertyFactory.CreateProperty(propType); prop.ReadFromXml(xn as XmlElement); Add(prop); } }