/// <summary>
        /// Заполняет поля объекта данными из XML
        /// </summary>
        /// <param name="xml">XML с данными</param>
        public static BaseDictionaryDTO <T> FromXElement(string dictionaryName, XElement xml)
        {
            var dictionary = new BaseDictionaryDTO <T>(dictionaryName);

            dictionary.Id   = xml.Element("Id").GetValueByPath <T>(new T());
            dictionary.Name = xml.Element("Name").getValue("");
            return(dictionary);
        }
        /// <summary>
        /// Преобразует экземпляр DictionaryDTO в XElement для передачи в запросах
        /// </summary>
        /// <param name="dictionary">Экземпляр DictionaryDTO</param>
        /// <returns>XElement с данными пользователя</returns>
        public static XElement ToXElement(string dictionaryName, BaseDictionaryDTO <T> dictionary)
        {
            var xml = new XElement(dictionaryName);

            xml.Add(new XElement("Id", dictionary.Id));
            xml.Add(new XElement("Name", dictionary.Name));
            return(xml);
        }
        /// <summary>
        /// Преобразует XElement в массив экземпляров DictionaryDTO
        /// </summary>
        /// <param name="xml">Исходный XElement</param>
        /// <returns>Результирующий массив экземпляров DictionaryDTO</returns>
        public static BaseDictionaryDTO <T>[] ArrayFromXElement(string arrayName, string dictionaryName, XElement xml)
        {
            List <BaseDictionaryDTO <T> > lst = new List <BaseDictionaryDTO <T> >();

            foreach (var e in xml.Elements(dictionaryName))
            {
                lst.Add(BaseDictionaryDTO <T> .FromXElement(dictionaryName, e));
            }

            return(lst.ToArray());
        }
        /// <summary>
        /// Преобразует массив экземпляров DictionaryDTO в XElement
        /// </summary>
        /// <param name="dictionaries">Исходный массив экземпляров DictionaryDTO</param>
        /// <returns>Результирующий XElement</returns>
        public static XElement ArrayToXElement(string arrayName, string dictionaryName, BaseDictionaryDTO <T>[] dictionaries)
        {
            XElement xml = new XElement(arrayName);

            foreach (var u in dictionaries)
            {
                xml.Add(BaseDictionaryDTO <T> .ToXElement(dictionaryName, u));
            }

            return(xml);
        }