/// <summary> /// Check if all dependencies of a plugins are loaded /// </summary> /// <param name="plugin">Plugin to check</param> /// <returns>Returns if all plugins were loaded</returns> private bool AllDependenciesAvailable(IAvailablePlugin plugin) { bool allDependenciesLoaded = true; foreach (String dependency in plugin.Instance.getDependencies()) { bool foundPlugin = false; foreach (AvailablePlugin loadedPlugin in _colAvailablePlugins) { if (loadedPlugin.Instance.Name != dependency) continue; foundPlugin = true; break; } if (foundPlugin) continue; allDependenciesLoaded = false; break; } return allDependenciesLoaded; }
private void AddPlugin(IAvailablePlugin newPlugin) { //Call the initialization sub of the plugin newPlugin.Instance.Initialize(); //Add the new plugin to our collection here _colAvailablePlugins.Add(newPlugin); //Try to initialize unintialized plugins ReCheckUninitializedPlugins(); }