示例#1
0
        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;
            });
        }
示例#2
0
 /// <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>());
         }
     }
 }