Ejemplo n.º 1
0
        /// <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); }
        }
Ejemplo n.º 2
0
        /// <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); }
        }