public IEnumerable <Type> GetPlugins() { var fileInfos = _machineInfo.GetFileList($"{_opts.PluginsDirectory}\\**\\*\\.(exe|dll)").ToList(); if (!Directory.Exists(_opts.PluginsDirectory) || !fileInfos.Any()) { return(new List <Type>()); } var assemblies = fileInfos.Select(q => Assembly.LoadFile(q.FullName)); var pluginTypes = from a in assemblies from t in a.GetExportedTypes() where typeof(IDiagnosticRenderer).IsAssignableFrom(t) select t; return(pluginTypes); }