Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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();
        }