public void ConfigureServices(IServiceCollection services) { services.AddSingleton <ICultureProvider, CultureProvider>(); services.AddSingleton <IStringLocalizerFactory, StringLocalizerFactory>(); GetServiceProvider = services.BuildServiceProvider(); IHostingEnvironment environment = GetServiceProvider.GetRequiredService <IHostingEnvironment>(); InstalledCultures = LanguageWrapper.GetInstalledLanguages(environment.ContentRootPath); List <CultureInfo> cultures = new List <CultureInfo>(); for (int i = 0; i < InstalledCultures.Length; i++) { cultures.Add(new CultureInfo(InstalledCultures[i])); } services.Configure <RequestLocalizationOptions>( opts => { opts.DefaultRequestCulture = new RequestCulture(InstalledCultures[0]); opts.SupportedCultures = cultures; opts.SupportedUICultures = cultures; }); }
/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T GetRequiredService <T>() { try { //var t = _app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope().ServiceProvider.GetRequiredService<T>(); return(_app.ApplicationServices.GetService <T>()); } catch { //生命周期为ServiceLifetime.Scoped 需通过这种方式 using (var scope = GetServiceProvider.CreateScope()) { return(scope.ServiceProvider.GetRequiredService <T>()); } } }