/// <summary> /// 加载模块方法 /// </summary> /// <param name="msg">加载进度</param> /// <param name="moduleMenus">模块的菜单</param> public void LoadModules(IMsg msg, MenuStrip moduleMenus) { try { //加载Dev组件 ModuleLoadDevComponent loader = new ModuleLoadDevComponent(); _Modules = loader.GetModuleList(); //从运行目录中搜索模块文件 foreach (ModuleInfo m in _Modules) //枚举模块文件 { if (!loader.LoadModule(m)) { continue; //加载失败,继续Load下一个模块 } //当前模块是否分配了权限.(当前用户是否有这个模块的权限). //没有权限继续Load下一个模块 if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities)) { loader.ClearAssemble(); continue; } _ModulesLoadSucceed.Add(loader.ModuleMainForm); //保存已加载的模块 msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName()); //显示加载进度 loader.LoadGUI(_tabControlModules); //将模块的功能按钮容器集成到主窗体的TabControl内 loader.LoadMenu(moduleMenus); //加载模块的菜单,集成到主窗体的主菜单内 (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm; //模块的主窗体也作为一个子窗体, 设置父窗体. } GC.Collect();//加载模块消耗内存,及时回收部分内存 } catch (Exception ex) { Msg.ShowException(ex); } }
/// <summary> /// 加载模块方法 /// </summary> /// <param name="msg">加载进度</param> /// <param name="moduleMenus">模块的菜单</param> public void LoadModules(IMsg msg, MenuStrip moduleMenus) { try { //加载Dev组件 ModuleLoadDevComponent loader = new ModuleLoadDevComponent(); _Modules = loader.GetModuleList();//从运行目录中搜索模块文件 foreach (ModuleInfo m in _Modules) //枚举模块文件 { if (!loader.LoadModule(m)) continue; //加载失败,继续Load下一个模块 //当前模块是否分配了权限.(当前用户是否有这个模块的权限). //没有权限继续Load下一个模块 if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities)) { loader.ClearAssemble(); continue; } _ModulesLoadSucceed.Add(loader.ModuleMainForm);//保存已加载的模块 msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName());//显示加载进度 loader.LoadGUI(_tabControlModules); //将模块的功能按钮容器集成到主窗体的TabControl内 loader.LoadMenu(moduleMenus); //加载模块的菜单,集成到主窗体的主菜单内 (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm; //模块的主窗体也作为一个子窗体, 设置父窗体. } GC.Collect();//加载模块消耗内存,及时回收部分内存 } catch (Exception ex) { Msg.ShowException(ex); } }