/// <summary> /// 加载模块。 /// </summary> /// <param name="Guid"></param> /// <returns></returns> internal static object LoadModule(System.Guid Guid) { NavigateModule GModule = null; if (!SLContext.Instance.Adminstrators) { foreach (var item in NavigationProxy.Instance.ModuleList) { Guid Guid2 = new Guid(item.Guid); if (Guid2 == Guid) { GModule = item; break; } } } if (GModule == null) { return(null); } object module = ClassProvider.GetObjectInstance(GModule.Assembly, GModule.Type); if (module == null) { throw new System.Exception("无法加载模块“" + GModule.Name + "”,请通知您的系统管理人员。"); } return(module); }
private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TextBlock tb = sender as TextBlock; if (tb.Tag is NavigateGroup) { NavigateGroup group = tb.Tag as NavigateGroup; DataEntityQuery <EAS.Explorer.Entities.Module> query = new DataEntityQuery <Explorer.Entities.Module>(); var v = query.Where(p => p.Guid == group.WFModule); DataPortal <EAS.Explorer.Entities.Module> dp = new DataPortal <Explorer.Entities.Module>(); dp.BeginExecuteSingleQuery(v).Completed += (s, e2) => { QueryTask <EAS.Explorer.Entities.Module> task = s as QueryTask <EAS.Explorer.Entities.Module>; if (task.DataEntity != null) { try { System.Type T3 = EAS.Objects.ClassProvider.GetType(task.DataEntity.Assembly, task.DataEntity.Type); object addIn = System.Activator.CreateInstance(T3); this.LoadModule(addIn); } catch (System.Exception exc) { MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK); } } }; } else if (tb.Tag is NavigateModule) { NavigateModule module = tb.Tag as NavigateModule; try { System.Type T2 = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type); object addIn = System.Activator.CreateInstance(T2); this.LoadModule(addIn); } catch (System.Exception exc) { MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK); } } else if (tb.Tag is Type) { System.Type T = tb.Tag as Type; object addIn = System.Activator.CreateInstance(T); this.LoadModule(addIn); } }
private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TextBlock tb = sender as TextBlock; if (tb.Tag is NavigateGroup) { NavigateGroup group = tb.Tag as NavigateGroup; Guid mGuid = Guid.Empty; Guid.TryParse(group.WFModule, out mGuid); if (mGuid == Guid.Empty) { return; } EAS.Application.Instance.StartModule(mGuid); } else if (tb.Tag is NavigateModule) { try { NavigateModule module = tb.Tag as NavigateModule; System.Type T2 = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type); object addIn = System.Activator.CreateInstance(T2); EAS.Application.Instance.StartModule(addIn); } catch (System.Exception exc) { MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK); } } else if (tb.Tag is Type) { try { System.Type T = tb.Tag as Type; object addIn = System.Activator.CreateInstance(T); EAS.Application.Instance.StartModule(addIn); } catch (System.Exception exc) { MessageBox.Show("打开模块出错:" + exc.Message, "错误", MessageBoxButton.OK); } } }
private void TbItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TextBlock tb = sender as TextBlock; if (tb.Tag is NavigateGroup) { NavigateGroup group = tb.Tag as NavigateGroup; EAS.Application.Instance.StartModule(group.WFModule); } else if (tb.Tag is NavigateModule) { NavigateModule module = tb.Tag as NavigateModule; System.Type T2 = EAS.Objects.ClassProvider.GetType(module.Assembly, module.Type); object addIn = System.Activator.CreateInstance(T2); EAS.Application.Instance.StartModule(addIn); } else if (tb.Tag is Type) { System.Type T = tb.Tag as Type; object addIn = System.Activator.CreateInstance(T); EAS.Application.Instance.StartModule(addIn); } }
void InitializeNavigationDebug() { //======================================================= Assembly assembly = EAS.Objects.ClassProvider.GetAssembly(SLContext.Instance.Assembly); System.Type[] types = assembly.GetTypes(); List <NavigateModule> moduleList = new List <NavigateModule>(); List <NavigateGroup> groupList = new List <NavigateGroup>(); #region 提取模块 foreach (System.Type type in types) { AddInAttribute ma = Attribute.GetCustomAttribute(type, typeof(AddInAttribute)) as AddInAttribute; if (!Object.Equals(null, ma)) { NavigateModule dataEntity = new NavigateModule(); dataEntity.Guid = ma.Guid; dataEntity.Name = ma.Name; dataEntity.Description = ma.Description; dataEntity.Assembly = MetaHelper.GetAssemblyString(type); dataEntity.Type = MetaHelper.GetTypeString(type); dataEntity.Version = MetaHelper.GetVersionString(type); dataEntity.Developer = MetaHelper.GetDeveloperString(type); moduleList.Add(dataEntity); } } foreach (NavigateModule item in moduleList) { if (item.GroupName == null) { item.GroupName = string.Empty; } if (item.GroupName.Length == 0) { item.GroupName = "调试模块"; } NavigateGroup GX = groupList.Where(p => p.Name == item.GroupName).FirstOrDefault(); if (GX != null) { item.GroupID = GX.ID; } else { GX = new NavigateGroup(); GX.ParentID = Guid.Empty.ToString().ToUpper(); GX.ID = Guid.NewGuid().ToString().ToUpper(); GX.Name = item.GroupName; GX.Attributes = 0xffff; groupList.Add(GX); item.GroupID = GX.ID; } } #endregion (this.m_Menu as INavigation).Initialize(groupList, moduleList); }