private void AddPlugin(string FileName) { Assembly pluginAssembly = Assembly.LoadFrom(FileName); foreach (Type pluginType in pluginAssembly.GetTypes()) { if (pluginType.IsPublic) { if (!pluginType.IsAbstract) { Type typeInterface = pluginType.GetInterface("OCTTPluginInterface.IPlugin", true); if (typeInterface != null) { Types.OneAvailablePlugin newPlugin = new Types.OneAvailablePlugin(); newPlugin.AssemblyPath = FileName; newPlugin.Instance = (IPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); newPlugin.Instance.Host = this; newPlugin.Instance.Initialize(); this._availablePluginsCollection.Add(newPlugin); newPlugin = null; } typeInterface = null; } } } pluginAssembly = null; }
public Types.OneAvailablePlugin Find(string pluginNameOrPath) { Types.OneAvailablePlugin toReturn = null; foreach (Types.OneAvailablePlugin plugin in this.List) { if ((plugin.Instance.Name.Equals(pluginNameOrPath)) || plugin.AssemblyPath.Equals(pluginNameOrPath)) { toReturn = plugin; break; } } return(toReturn); }
public void Remove(Types.OneAvailablePlugin pluginToRemove) { this.List.Remove(pluginToRemove); }
public void Add(Types.OneAvailablePlugin pluginToAdd) { this.List.Add(pluginToAdd); }