using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using System.Text; namespace Grpc.Extension.Common { public static class HostBuilderExtensions { /// /// UseStartup /// /// /// /// public static IHostBuilder UseStartup(this IHostBuilder hostBuilder) where TStartup : class { hostBuilder.ConfigureServices((ctx, services) => { //build services.AddSingleton(); var provider = services.BuildServiceProvider(); //get service dynamic startup = provider.GetService(); //dynamic invoke startup.ConfigureServices(services); }); return hostBuilder; } } }