Пример #1
0
            void ElementEntityProperties(XmlReader reader, MapConfig config, EntityMap entMap)
            {
                bool hasReachedEndGracefully = false;

                while (reader.Read())
                {
                    if (reader.CanReadElement("property"))
                    {
                        var prop = Read_PropertyElement(reader, config, "property");
                        if (prop != null)
                        {
                            entMap.Add(prop);
                        }
                    }
                    else if (reader.CanReadElement("reference"))
                    {
                        var prop = Read_PropertyElement(reader, config, "reference", true) as Relation;
                        if (prop != null)
                        {
                            entMap.Add(prop);
                        }
                    }
                    else if (reader.CanReadElement("list"))
                    {
                        var prop = Read_List(reader, config, CollectionType.List);
                        if (prop != null)
                        {
                            entMap.Add(prop);
                        }
                    }
                    else if (reader.CanReadElement("map"))
                    {
                        var prop = Read_List(reader, config, CollectionType.Map);
                        if (prop != null)
                        {
                            entMap.Add(prop);
                        }
                    }
                    else if (reader.CanReadElement("set"))
                    {
                        var prop = Read_List(reader, config, CollectionType.Set);
                        if (prop != null)
                        {
                            entMap.Add(prop);
                        }
                    }
                    else if (reader.HasReachedEndOfElement("properties"))
                    {
                        hasReachedEndGracefully = true;
                        break;
                    }
                }

                if (!hasReachedEndGracefully)
                {
                    throw new MappingSerializationException(typeof(PropertyCollection), "missing a </properties> end tag");
                }
            }