/// <summary> /// Constructor. Mostly likely it will be called from DI framework. /// </summary> /// <param name="logger">logger where information must be printed</param> /// <param name="configuration"></param> /// <param name="serviceProvider">This service provider will be used to find services required by service plygins</param> /// <param name="pluginsFinder">Plugins finder to use to find available plugins</param> /// <param name="order">Comparision object used to sort plugin list</param> public PluginsManager(ILogger <PluginsManager <T> > logger, IConfiguration configuration, IServiceProvider serviceProvider, IPluginsFinder pluginsFinder, Comparison <T> order = null) { this.logger = logger; this.serviceProvider = serviceProvider; this.configuration = configuration; this.pluginsFinder = pluginsFinder; plugins = CreatePlugins(); Configure(order); Plugins = new ReadOnlyCollection <T>(plugins); }
/// <summary> /// Constructor /// </summary> /// <param name="configuration"></param> /// <param name="logger"></param> /// <param name="serviceProvider"></param> public PluginsManager(ILogger <PluginsManager> logger, IConfiguration configuration, IServiceProvider serviceProvider, IPluginsFinder pluginsFinder) : base(logger, configuration, serviceProvider, pluginsFinder) { }