通用后台管理系统必备功能模块包含日志管理,权限管理,数据字典,参数配置等功能。参数设置主要用于设置系统运行所需的一些基础性配置项,比如redis缓存,mq消息队列,系统版本等信息。好的参数设置需要达到以下几点1.使用简单 2.功能强大,方便拓展 3.界面美观。本篇将带你 ...
通用后台管理系统必备功能模块包含日志管理,权限管理,数据字典,参数配置等功能。参数设置主要用于设置系统运行所需的一些基础性配置项,比如redis缓存,mq消息队列,系统版本等信息。好的参数设置需要达到以下几点1.使用简单 2.功能强大,方便拓展 3.界面美观。本篇将带你实现通用参数设置,在阅读之前你需要了解的知识,get='_blank'>ASP.NET MVC,Entity Framework,MEF。在线预览地址:http://config.myscloud.cn
阅读目录
回到顶部 注意点:ConfigAttribute属性描述中 Name:对应配置项中文说明 DefaultValue:默认值 ConfigValueType:bool类型会显示成单选radio,更多设置可参考ConfigAttribute类 通过MEF导入器读取所有配置项组,存储在静态变量 _allConfig 中
/// <summary> /// 初始化系统参数配置信息 /// </summary> public void Init() { //所有选项值 List<Options> listOption = ConfigService.GetAllOptions(); ConfigDescription desc = null; //代码现有配置项 foreach (ConfigOption item in AllConfig) { //反射读取配置项ConfigTypeAttribute ConfigAttribute 信息 desc = ConfigDescriptionCache.GetTypeDiscription(item.GetType()); //设置当前配置项的GroupType desc.GroupTypePropertyInfo.SetValue(item, Convert.ChangeType(desc.Group, desc.GroupTypePropertyInfo.PropertyType), null); //每项值信息 List<Options> itemOptions = listOption.Where(e => e.OptionType.Equals(desc.Group, StringComparison.OrdinalIgnoreCase)).ToList(); Options op = null; ConfigAttribute ca = null; foreach (PropertyInfo prop in desc.StaticPropertyInfo) { op = itemOptions.FirstOrDefault(e1 => e1.Key.Equals(prop.Name, StringComparison.OrdinalIgnoreCase)); ca = desc.MemberDict[prop.Name]; if (op == null) { //设置默认值 prop.SetValue(null, Convert.ChangeType(ca.DefaultValue, prop.PropertyType), null); } else { prop.SetValue(null, Convert.ChangeType(op.Value, prop.PropertyType), null); } } } }
/// <summary> /// 获取指定项配置信息 /// </summary> /// <param name="GroupType">分组项</param> /// <returns>所有配置信息</returns> public OptionViewModel GetOptionByGroup(string GroupType)
前台渲染逻辑(config.js)
原标题:使用MEF实现通用参数设置
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。