Example #1
0
        /// <summary>
        /// 查找一组节点名称相同 类似 appsetting 属性句称局限以 key / value
        /// </summary>
        /// <param name="moduleName">模块名称</param>
        /// <param name="config">节点路径</param>
        /// <returns>返回值</returns>
        public static Dictionary <string, string> GetDictionary(string moduleName, string config)
        {
            ConfigReader cr = ConfigReader.Create();

            if (!cr._ConfigList.ContainsKey(moduleName))
            {
                return(null);
            }
            XmlDocument doc         = cr._ConfigList[moduleName];
            XmlElement  xmlEle      = doc.DocumentElement;
            XmlNodeList xmlNodeList = xmlEle.SelectNodes(config);
            Dictionary <string, string> _dicParams = new Dictionary <string, string>();

            foreach (XmlNode item in xmlNodeList)
            {
                if (item.Attributes["key"] != null && item.Attributes["value"] != null)
                {
                    _dicParams.Add(item.Attributes["key"].Value, item.Attributes["value"].Value);
                }
            }
            return(_dicParams);
        }
Example #2
0
 static void watcher_Changed(object sender, System.IO.FileSystemEventArgs e)
 {
     _ConfigReader = null;
 }
Example #3
0
        /// <summary>
        /// 返回一个泛型列表
        /// </summary>
        /// <param name="moduleName">模块名称</param>
        /// <param name="config">节点路径</param>
        /// <returns>返回一个泛型</returns>
        public static IList <T> GetConfigList <T>(string moduleName, string config) where T : class, new()
        {
            ConfigReader cr = ConfigReader.Create();

            if (!cr._ConfigList.ContainsKey(moduleName))
            {
                return(null);
            }
            XmlDocument doc         = cr._ConfigList[moduleName];
            XmlElement  xmlEle      = doc.DocumentElement;
            XmlNodeList xmlNodeList = xmlEle.SelectNodes(config);

            if (xmlNodeList == null)
            {
                return(null);
            }
            IList <T> _list = new List <T>();
            Type      type  = typeof(T);

            System.Reflection.PropertyInfo[] p = type.GetProperties();
            foreach (XmlNode item in xmlNodeList)
            {
                T obj = new T();
                foreach (PropertyInfo property in p)
                {
                    if (item.Attributes[property.Name] == null)
                    {
                        continue;
                    }

                    string temp = item.Attributes[property.Name].Value;
                    object propertyValue;
                    if (property.PropertyType == typeof(int))
                    {
                        // 整型
                        int result;
                        int.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(short))
                    {
                        // short型
                        short result;
                        short.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(long))
                    {
                        // 长整型
                        long result;
                        long.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(byte))
                    {
                        // byte型
                        byte result;
                        byte.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(bool))
                    {
                        // bool类型
                        bool result;
                        bool.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(DateTime))
                    {
                        // DateTime类型
                        DateTime result;
                        DateTime.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(decimal))
                    {
                        // decimal类型
                        decimal result;
                        decimal.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(float))
                    {
                        // float类型
                        float result;
                        float.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else if (property.PropertyType == typeof(double))
                    {
                        // double类型
                        double result;
                        double.TryParse(temp, out result);
                        propertyValue = result;
                    }
                    else
                    {
                        // 其它类型,当它是字符串
                        propertyValue = temp;
                    }

                    if (item.Attributes[property.Name] != null)
                    {
                        property.SetValue(obj, propertyValue, null);
                    }
                }
                _list.Add(obj);
            }
            return(_list);
        }