Пример #1
0
        public void Addmodule(string fileName)
        {
            Assembly moduleAssembly = Assembly.LoadFrom(fileName);

            foreach (Type moduleType in moduleAssembly.GetTypes())
            {
                if (moduleType.IsPublic)
                {
                    if (!moduleType.IsAbstract)
                    {
                        Type typeInterface = moduleType.GetInterface("EISModuleComponents.EISModule", true);

                        if (typeInterface != null)
                        {
                            try
                            {
                                Types.AvailableEISModule newmodule = new Types.AvailableEISModule();
                                newmodule.AssemblyPath = fileName;
                                newmodule.Instance = (EISModule)Activator.CreateInstance(moduleType);
                                newmodule.Instance.HostModule = this;
                                newmodule.Instance.InitializeModule();

                                this.allAvailableModules.Add(newmodule);

                                newmodule = null;
                            }
                            catch (Exception e)
                            {
                               this.Notify("Error while loading module: \n" + e.TargetSite.ToString() + "\nReason:\n" + e.Message, EISErrorTypes.Error);
                            }
                        }
                        typeInterface = null;

                    }
                }
            }
            moduleAssembly = null;
        }
Пример #2
0
        private void reloadModule()
        {
            if (toolStripComboBoxModules.Items.Count > 0 && toolStripComboBoxModules.SelectedItem != null)
            {

                Types.AvailableEISModule selectedModule = EISMetaLayer.Modules.AllAvailableModules.Find(toolStripComboBoxModules.SelectedItem.ToString());
                if (selectedModule == null)
                    return;

                selectedModule.Instance.HostModule = this;
                selectedModule.Instance.MainInterface.Dock = DockStyle.Fill;
                currentModule = selectedModule;

                this.mainPanel.Controls.Clear();
                this.mainPanel.Controls.Add(currentModule.Instance.MainInterface);

            }
        }