public HotPluginLoader(String pluginsPath, Action<String> logWriter)
        {
            if (!Directory.Exists(pluginsPath))
            {
                logWriter("Plugins directory does not exist!");
                return;
            }

            _pluginsPath = pluginsPath;
            _logWriter = logWriter;
            _fileSystemWatcher = new BasicFileSystemWatcher(_pluginsPath);
            _fileSystemWatcher.Added += FileSystemWatcherOnAdded;
            _fileSystemWatcher.Removed += FileSystemWatcherOnRemoved;
            _plugins = new Dictionary<String, List<HotPlugin>>();

            IEnumerable<String> assemblies = GetAssemblyFiles();
            foreach (var assemblyPath in assemblies)
            {
                LoadPluginsFromAssembly(assemblyPath);
            }
        }
        public HotPluginLoader(String pluginsPath, Action <String> logWriter)
        {
            if (!Directory.Exists(pluginsPath))
            {
                logWriter("Plugins directory does not exist!");
                return;
            }

            _pluginsPath                = pluginsPath;
            _logWriter                  = logWriter;
            _fileSystemWatcher          = new BasicFileSystemWatcher(_pluginsPath);
            _fileSystemWatcher.Added   += FileSystemWatcherOnAdded;
            _fileSystemWatcher.Removed += FileSystemWatcherOnRemoved;
            _plugins = new Dictionary <String, List <HotPlugin> >();

            IEnumerable <String> assemblies = GetAssemblyFiles();

            foreach (var assemblyPath in assemblies)
            {
                LoadPluginsFromAssembly(assemblyPath);
            }
        }