Esempio n. 1
0
        public EnumField(XmlTextReader r, string version) : this()
        {
            string enumTypeName;
            string enumTypeNameSpace;

            if (r.Name != "EnumField")
            {
                throw (new Exception(string.Format("Cannot load, expected EnumField, found '{0}'.", r.Name)));
            }

            r.MoveToAttribute("Name");
            this.Name = r.Value;
            r.MoveToAttribute("CustomPrivateName");
            //this.customPrivateName = r.Value;
            CustomPrivateName = string.Empty;
            r.MoveToAttribute("CustomColumnName");
            //this.customColumnName = r.Value;
            CustomColumnName = string.Empty;
            r.MoveToContent();
            r.Read();

            enumTypeName = r.ReadElementString("EnumTypeName");
            if (r.LocalName == "Builder")
            {
                EnumTypeBuilder.Builders.TryGetValue(r.ReadElementString("Builder"), out builder);
            }

            enumTypeNameSpace = r.ReadElementString("EnumTypeNameSpace");
            if (r.Name == "Caption")
            {
                Caption = r.ReadElementString("Caption");
            }
            if (r.Name == "Description")
            {
                Description = r.ReadElementString("Description");
            }

            if (r.Name == "Extensions")
            {
                if (!r.IsEmptyElement)
                {
                    r.Read();

                    while (r.Name == "Extension")
                    {
                        EnumFieldExtension newExtension = (EnumFieldExtension)
                                                          ObjectExtension.Build(r, version);
                        extensions.Add(newExtension.GetType(), newExtension);
                    }

                    r.ReadEndElement();
                }
                else
                {
                    r.Read();
                }
            }

            r.ReadEndElement();

            enumType = new EnumType(enumTypeName, enumTypeNameSpace);
        }