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; }
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); } }