public static ISystemBuilder UseSystemServices(this ISystemBuilder builder, Assembly assembly)
        {
            return(builder.ConfigureServices(scope => {
                var types = assembly.GetImplementationTypes()
                            .Where(x => typeof(ISystemServicesProvider).GetTypeInfo().IsAssignableFrom(x.GetTypeInfo()));

                foreach (var type in types)
                {
                    scope.Register(typeof(ISystemServicesProvider), type, null);
                }
            }));
        }
 public static ISystemBuilder UseConfiguration(this ISystemBuilder builder, IConfiguration configuration)
 {
     return(builder.ConfigureServices(services => services.ReplaceInstance <IConfiguration>(configuration)));
 }
 public static ISystemBuilder ConfigureServices(this ISystemBuilder builder, Action <IScope> configure)
 {
     return(builder.ConfigureServices((context, scope) => configure(scope)));
 }