public ElementNodeList(IEnumerable <ILabelContent> source)
        {
            foreach (var obj in source)
            {
                var objType = obj.GetType();

                var map = MappingTable.Find(objType);

                if (map == null)
                {
                    throw new InvalidOperationException("Not supported mapping type.");
                }

                Add((LabelContentXmlNode)SimpleObjectMapper.MapFlat(obj, map.XmlNodeType));
            }
            ;
        }
        public void ReadXml(XmlReader reader)
        {
            var nodes = XElement.Parse(reader.ReadOuterXml()).Elements().ToList();

            foreach (var node in nodes)
            {
                var map = MappingTable.Find(node.Name.LocalName);

                if (map == null)
                {
                    throw new InvalidOperationException("Not supported mapping type.");
                }

                var serializer = new XmlSerializer(map.XmlNodeType);

                using (var nodeReader = node.CreateReader())
                    Add((LabelContentXmlNode)serializer.Deserialize(nodeReader));
            }
        }