/// <summary> /// 加载插件模块 /// </summary> /// <param name="plugPath">插件路径</param> /// <param name="paras">初始化参数</param> /// <returns>模块对象</returns> internal static List <ModuleBaseEntry> LoadPlugModule(string plugPath, DelegateAppSelfMessageNotic delegateAction, params object[] paras) { List <ModuleBaseEntry> modules = new List <ModuleBaseEntry>(); try { List <Assembly> assemblyList = GetAllAssemblies(plugPath); foreach (var item in assemblyList) { Type[] types = item.GetTypes(); foreach (var t in types) { if (IsEEMSModule(t)) { ModuleBaseEntry plugPanel = (ModuleBaseEntry)Activator.CreateInstance(t, paras); plugPanel.SelfMessageNotic = delegateAction; modules.Add(plugPanel); } } } } catch (Exception e) { LogHelper.Instance.WirteErrorMsg("Module Init:" + e.Message); } modules.Sort(); return(modules); }
/// <summary> /// 初始化 /// </summary> public void Init() { // 加载模块 DelegateAppSelfMessageNotic delegateAction = ModulesSelfMessageNotic; Modules = LoadModule.LoadPlugModule(AppDomain.CurrentDomain.BaseDirectory + "\\Plugs", delegateAction); AppConfigInfos.IceConnect = IceHelper.Instance.Init(); IceHelper.Instance.ReceiveDataHandler += Instance_ReceiveDataHandler; Modules.ForEach(p => p.Init(dataResponsible)); Modules.ForEach(p => p.ConnectNetWork(dataResponsible)); EventManager.Instance.Init(dataResponsible); // EventManager.Instance.ConnectNetWork(dataResponsible); lastTick = DateTime.Now.Ticks; CheckHeartbeat(); }