public static MusicProviders Load() { Assembly assembly = Assembly.GetExecutingAssembly(); List <Type> hostTypes = new List <Type>(); foreach (var type in assembly.GetExportedTypes()) { if (type.Name == "MusicProviders") { continue; } //确定type为类并且继承且实现IMyInstance if (type.IsClass && typeof(IMusicProvider).IsAssignableFrom(type) && !type.IsAbstract) { hostTypes.Add(type); } } MusicProviders musicProviders = new MusicProviders(); foreach (var type in hostTypes) { IMusicProvider instance = (IMusicProvider)Activator.CreateInstance(type); musicProviders.AddMusicProvider(instance); } return(musicProviders); }
public SongItemDownloader(MusicProviders musicProviders, string target, MergedSong1 song1) { this.musicProviders = musicProviders; this.target = target; this.song1 = song1; }
public SongDownloader(MusicProviders musicProviders, string target) { this.musicProviders = musicProviders; this.target = target; }