/// <inheritdoc /> protected override void Load() { if (!IsLoaded) { var eventGeneratorToLoad = LocalConfiguration.EventGenerators; var cwd = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); foreach (var eg in eventGeneratorToLoad) { try { SimpleLogger.Information($"Loading Event Generator: {eg.Name}, from DLL: {eg.Dll}"); var absolutePath = Path.IsPathRooted(eg.Dll) ? eg.Dll : Path.Combine(cwd, eg.Dll); Assembly assembly = Assembly.LoadFrom(absolutePath); Type type = assembly.GetType(eg.Name); EventGenerators.Add((IEventGenerator)Activator.CreateInstance(type)); } catch (Exception e) { SimpleLogger.Error($"Couldn't load Event Generator: {eg.Name}, from DLL: {eg.Dll}. Exception {e}"); } } } IsLoaded = true; }