/// <summary> /// Plugins for file type. /// </summary> /// /// <param name="type"> The type. </param> /// /// <returns> /// A List<IPlugin> /// </returns> public List <IPlugin> PluginsForFileType(FileType type) { List <IPlugin> result = new List <IPlugin>(); if (type.IsFlagSet(FileType.Solution)) { #if MEF result.AddRange(container.GetExportedValues <ISolutionPlugin>()); #else result.AddRange(container.MultiResolve <IPlugin, ISolutionPlugin>()); #endif } if (type.IsFlagSet(FileType.Project)) { #if MEF result.AddRange(container.GetExportedValues <IProjectPlugin>()); #else result.AddRange(container.MultiResolve <IPlugin, IProjectPlugin>()); #endif } if (type.IsFlagSet(FileType.Assembly)) { #if MEF result.AddRange(container.GetExportedValues <IAssemblyPlugin>()); #else result.AddRange(container.MultiResolve <IPlugin, IAssemblyPlugin>()); #endif } if (type.IsFlagSet(FileType.UnitTest)) { #if MEF result.AddRange(container.GetExportedValues <ITestPlugin>()); #else result.AddRange(container.MultiResolve <IPlugin, ITestPlugin>()); #endif } if (type.IsFlagSet(FileType.Executable)) { #if MEF result.AddRange(container.GetExportedValues <IExecutablePlugin>()); #else result.AddRange(container.MultiResolve <IPlugin, ITestPlugin>()); #endif } return(result); }