public static void RemoveModuleInfo(ModuleInfo moduleInfo) { if (moduleInfo == null) { throw new ArgumentNullException("moduleInfo"); } RemoveModuleInfo(moduleInfo.ID); }
public static void RegisteModuleInfo(ModuleInfo moduleInfo) { if (moduleInfo == null || moduleInfo.File.IsNullOrEmpty() || moduleInfo.ID.IsNullOrEmpty()) return; if (moduleInfoList.ContainsKey(moduleInfo.ID)) { throw new Exception(moduleInfo.ID + "模块已存在,请更改其他模块ID。"); } moduleInfoList[moduleInfo.ID] = moduleInfo; if (moduleInfo.Startup) startupModuleInfoList.Add(moduleInfo); }
public static Module CreateModule(ModuleInfo moduleInfo) { Module module; Assembly assembly = Assembly.LoadFrom(Path.Combine(moduleInfo.CurDir, moduleInfo.File)); try { Type type = assembly.GetType(moduleInfo.CLS); module = Activator.CreateInstance(type, moduleInfo) as Module; ModuleMonitor.RegisteModule(module); MsgMonitor.RegisteReceiver(module); } catch (Exception ex) { throw ex; } return module; }