Ejemplo n.º 1
0
        public void SetCollection(SettingsCollection settings)
        {
            var element = new XElement(settings.Name);
            var keys    = settings.Keys.ToList();

            foreach (var key in keys)
            {
                if (settings.IsElement(key))
                {
                    element.Add(settings.Get <XElement>(key));
                }
                else
                {
                    element.Add(new XElement(key, settings[key]));
                }
            }

            var e = root.Element(settings.Name);

            if (e != null)
            {
                e.ReplaceWith(element);
            }
            else
            {
                root.Add(element);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get the named collection. If the named element contains child elements then it is
        /// presumed to be an XElement, otherwise it is presumed to be a simple key/value entry
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public SettingsCollection GetCollection(string name)
        {
            var settings = new SettingsCollection(name);

            var elements = root.Element(name)?.Elements();

            if (elements != null)
            {
                foreach (var element in elements)
                {
                    if (element.HasElements)
                    {
                        // has child elements so this must be an XElement
                        settings.Add(element.Name.LocalName, element);
                    }
                    else
                    {
                        // has no children so this must be a simple key/value entry
                        settings.Add(element.Name.LocalName, element.Value);
                    }
                }
            }

            return(settings);
        }
Ejemplo n.º 3
0
        public SettingsCollection GetCollection(string name)
        {
            var settings = new SettingsCollection(name);

            var elements = root.Element(name)?.Elements();

            if (elements != null)
            {
                foreach (var element in elements)
                {
                    if (element.HasElements)
                    {
                        settings.Add(element.Name.LocalName, element);
                    }
                    else
                    {
                        settings.Add(element.Name.LocalName, element.Value);
                    }
                }
            }

            return(settings);
        }