public ModularStartupActivator(IConfiguration configuration) { Configuration = configuration; var ci = StartupType !.GetConstructor(new[] { typeof(IConfiguration) }); if (ci != null) { Instance = (ModularStartup)ci.Invoke(new[] { Configuration }); } else { ci = StartupType.GetConstructor(Type.EmptyTypes); if (ci != null) { Instance = (ModularStartup)ci.Invoke(TypeConstants.EmptyObjectArray); Instance.Configuration = configuration; } else { throw new NotSupportedException($"{StartupType.Name} does not have a {StartupType.Name}(IConfiguration) constructor"); } } }