/// <summary> /// 从当前Assembly加载 /// </summary> /// <returns></returns> private static StoriesProviders Load() { Assembly assembly = Assembly.GetExecutingAssembly(); List <Type> hostTypes = new List <Type>(); foreach (var type in assembly.GetExportedTypes()) { if (type.Name == "StoriesProviders") { continue; } //确定type为类并且继承自(实现)IMyInstance if (type.IsClass && typeof(IStoriesProvider).IsAssignableFrom(type) && !type.IsAbstract) { hostTypes.Add(type); } } StoriesProviders storyProviders = new StoriesProviders(); foreach (var type in hostTypes) { IStoriesProvider instance = (IStoriesProvider)Activator.CreateInstance(type); storyProviders.AddMusicProvider(instance); } return(storyProviders); }
public void AddMusicProvider(IStoriesProvider provider) { Providers.Add(provider); type2Provider.Add(provider.ProviderName, provider); }