Exemplo n.º 1
0
        /// <summary>
        /// 写入配置文件
        /// </summary>
        /// <param name="configPath">配置文件相对路径</param>
        /// <param name="obj">新的内容实体</param>
        /// <returns></returns>
        public static bool SaveConfig(ConfigFileEnum config, object obj)
        {
            string configPath      = IOHelper.GetMapPath(EnumHelper.GetEnumShowName(typeof(ConfigFileEnum), (int)config));
            var    permissionSet   = new PermissionSet(PermissionState.None);
            var    writePermission = new FileIOPermission(FileIOPermissionAccess.Write, configPath);

            permissionSet.AddPermission(writePermission);

            if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
            {
                lock (lockHelper)
                {
                    IOHelper.SerializeToXml(obj, configPath);
                }
                return(true);
            }
            else
            {
                return(false);//没有写入权限
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 加载配置文件
        /// </summary>
        /// <param name="configPath">配置文件相对路径</param>
        /// <param name="IsCache">是否使用缓存,默认true</param>
        /// <returns></returns>
        public static T LoadConfig <T>(ConfigFileEnum config, bool isCache = true)
        {
            string configPath = IOHelper.GetMapPath(EnumHelper.GetEnumShowName(typeof(ConfigFileEnum), (int)config));
            string cacheKey   = "Cache_" + Enum.GetName(typeof(ConfigFileEnum), config);

            if (isCache)
            {
                T model = (T)CacheHelper.Get(cacheKey);
                if (model == null)
                {
                    model = (T)IOHelper.DeserializeFromXML(typeof(T), configPath);
                    if (model != null)
                    {
                        CacheHelper.Insert(cacheKey, model, configPath);
                    }
                }
                return(model);
            }
            else
            {
                return((T)IOHelper.DeserializeFromXML(typeof(T), configPath));
            }
        }