private IEnumerable <TPluginService> LoadPlugins <TPluginService>() { string path = _pathProvider.Combine(_reflectionProvider.GetRunningAssemblyPath(), "Plugins"); if (!_directoryProvider.Exists(path)) { _directoryProvider.CreateDirectory(path); } var allAssemblies = new List <Assembly>(); foreach (string dll in _directoryProvider.GetFiles(path, "*.dll")) { allAssemblies.Add(_assemblyProvider.LoadFile(dll)); } var configuration = new ContainerConfiguration().WithAssemblies(allAssemblies); var container = configuration.CreateContainer(); var services = container.GetExports <TPluginService>(); return(services); }