Example #1
0
        /// <summary>
        /// Получает значения дочерних элементов.
        /// </summary>
        /// <typeparam name="T">Тип значения.</typeparam>
        /// <param name="name">Название дочернего элемента.</param>
        /// <returns>Значения элементов.</returns>
        public T[] GetProperties <T>(string name) where T : struct
        {
            var xname = XName.Get(name);
            var e     = Elements(xname);

            var properties = e.Select(element => FormattedValue <T> .ToValue(element.Value)).ToList();

            return(properties.ToArray());
        }
Example #2
0
        /// <summary>
        /// Получает значение атрибута.
        /// </summary>
        /// <typeparam name="T">Тип значения.</typeparam>
        /// <param name="name">Название атрибута.</param>
        /// <param name="default">Значение по умолчанию.</param>
        /// <returns>Значение атрибута.</returns>
        public T GetAttribute <T>(string name, T @default = default(T)) where T : struct
        {
            var xname = XName.Get(name);
            var e     = Attribute(xname);

            if (null == e)
            {
                return(@default);
            }

            return(FormattedValue <T> .ToValue(e.Value));
        }
Example #3
0
        /// <summary>
        /// Получает значение дочернего элемента.
        /// </summary>
        /// <typeparam name="T">Тип значения.</typeparam>
        /// <param name="name">Название дочернего элемента.</param>
        /// <returns>Значение элемента.</returns>
        public T GetProperty <T>(string name) where T : struct
        {
            var xname = XName.Get(name);
            var e     = Element(xname);

            if (null == e)
            {
                return(default(T));
            }

            return(FormattedValue <T> .ToValue(e.Value));
        }
Example #4
0
        /// <summary>
        /// Получает обязательные данные конфигурации приложения.
        /// </summary>
        /// <param name="key">Название настройки</param>
        /// <returns>Значение настройки</returns>
        public static T RequiredSetting <T>(string key) where T : struct
        {
            var v = GetSettingValue(key);

            if (string.IsNullOrEmpty(v))
            {
                throw new ConfigurationErrorsException($"Required setting '{key}' not specified. Check <appSettings> section.");
            }

            try
            {
                T value = FormattedValue <T> .ToValue(v);

                return(value);
            }
            catch (Exception)    //    thrown
            {
                throw new ConfigurationErrorsException($"Required setting '{key}' set incorrectly. Check <appSettings> section.");
            }
        }
Example #5
0
        /// <summary>
        /// Получает данные конфигурации приложения.
        /// </summary>
        /// <param name="key">Название настройки</param>
        /// <param name="def">Значение по умолчанию</param>
        /// <returns>Значение настройки</returns>
        public static T Setting <T>(string key, T def = default(T)) where T : struct
        {
            var cv = GetSettingValue(key) ?? string.Empty;

            return(FormattedValue <T> .ToValue(cv, def));
        }