Как я могу сделать мой залог JavaScript доступ к неопределенному атрибуту? [Дубликат]

Выглядит как дубликат на предыдущий вопрос .

Вот поправки:

  • Удалены «элементы» из геттера, в противном случае он бросает

System.Configuration.ConfigurationErrorsException: «Свойство« Элементы »не должно возвращать null из метода get свойства. Обычно геттер должен возвращать базу [""].

get
        {
            var items = base[""] as KeyValueConfigurationCollection;
            return items;
        }
  • Обновлен сериализатор с корневым атрибутом:

public static List Deserialize(string xml)
    {
        var serializer = new XmlSerializer(typeof(List), new XmlRootAttribute("list"));
        List list = null;

        var xdoc = XDocument.Parse(xml);
        list = (List)serializer.Deserialize(xdoc.CreateReader());
        return list;
    }

Окончательная версия теперь выглядит следующим образом:

public class List : ConfigurationElement, IXmlSerializable
{
    public List()
    { }

    [ConfigurationProperty("name", IsRequired = true, IsKey = true, DefaultValue = "")]
    public string Name
    {
        get { return (string)(this["name"]); }
        set { this["name"] = value; }
    }

    [ConfigurationProperty("", IsRequired = false, IsKey = false,
  IsDefaultCollection = true)]
    public KeyValueConfigurationCollection Items
    {
        get
        {
            var items = base[""] as KeyValueConfigurationCollection;
            return items;
        }
        set
        {
            if (base.Properties.Contains("items"))
            {
                base["items"] = value;
            }
            else
            {
                var configProperty = new ConfigurationProperty("items", typeof(KeyValueConfigurationCollection), value);
                base.Properties.Add(configProperty);
            }
        }
    }

    public XmlSchema GetSchema()
    {
        return this.GetSchema();
    }

    public void ReadXml(XmlReader reader)
    {
        this.DeserializeElement(reader, false);
    }

    public void WriteXml(XmlWriter writer)
    {
        this.SerializeElement(writer, false);
    }

    public static List Deserialize(string xml)
    {
        List list = null;
        var serializer = new XmlSerializer(typeof(List), new XmlRootAttribute("list"));

        var xdoc = XDocument.Parse(xml);
        list = (List)serializer.Deserialize(xdoc.CreateReader());
        return list;
    }
}

0
задан Brendan 19 January 2019 в 11:24
поделиться