public static IServiceCollection AddConfigPlugins(this IServiceCollection container, Config config)
        {
            Assembly sourcePlugin     = PluginFactory.LoadPlugin(config.Source);
            Type     sourcePluginType = PluginFactory.GetPluginType <ISource>(sourcePlugin);

            container
            .AddPluginServices(sourcePlugin)
            .AddSingleton(typeof(ISource), sourcePluginType);

            IEnumerable <Assembly> generatorPlugins = config.Generators.Select(PluginFactory.LoadPlugin);

            foreach (Assembly generatorPlugin in generatorPlugins)
            {
                container
                .AddPluginServices(generatorPlugin)
                .AddSingleton(typeof(IGenerator), PluginFactory.GetPluginType <IGenerator>(generatorPlugin));
            }

            return(container.AddSingleton(config));
        }