internal JintPluginsWatcher(string pluginPath, PluginsAssembliesStore store) { this.store = store; var watcher = new FileSystemWatcher(pluginPath, "*.dll") { EnableRaisingEvents = true }; watcher.Created += PluginCreatedOrChanged; watcher.Changed += PluginCreatedOrChanged; watcher.Deleted += PluginDeleted; }
private static IEnumerable<object> LoadPluginsInstances(PluginsAssembliesStore assembliesStore) { return assembliesStore.Assemblies.Select(assembly => assembly.Value .GetTypes() .Where(p => typeof(IPlugin).IsAssignableFrom(p))).SelectMany(plugins => plugins.Select(Activator.CreateInstance)); }