public static TServiceContext Create <TServiceContext>(params object[] stubServices) where TServiceContext : ServiceContextBase, new() { var services = Program.AddServices(new ServiceCollection()); foreach (var stubService in stubServices) { services.AddStubs(stubService); } var serviceProvider = services.BuildServiceProvider(); Program.ConfigureApplicationCommands(serviceProvider.GetRequiredService <CommandLineApplicationServices>()); var serviceContext = new TServiceContext(); foreach (var property in serviceContext.GetType().GetTypeInfo().DeclaredProperties) { if (property.CanWrite) { var service = serviceProvider.GetRequiredService(property.PropertyType); property.SetValue(serviceContext, service); } } return(serviceContext); }