private static void RegisterPostBuiltAction(this AutofacServiceCollection services) { services.AddPostRegisterAction("AfterBuild", builder => builder.RegisterBuildCallback(container => { StaticInstanceForILanguageServiceProvider.SetInstance(container.Resolve <ILanguageServiceProvider>()); StaticInstanceForTextProvider.SetInstance(container.Resolve <ITextProvider>()); StaticFlag.HasInit = true; StaticFlag.ExpectedServiceName = "AutofacImpl"; })); }
/// <summary> /// Add Cosmos I18N /// </summary> /// <param name="builder"></param> /// <param name="config"></param> /// <returns></returns> public static IHostBuilder AddCosmosLocalization(this IHostBuilder builder, Action <II18NServiceCollection> config = null) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } builder.ConfigureServices((ctx, services) => services.RegisterCode()); builder.ConfigureContainer <IServiceProvider>((ctx, resolver) => { StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>()); StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>()); }); return(builder); }
/// <summary> /// Use cosmos localization /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IApplicationBuilder UseCosmosLocalization(this IApplicationBuilder builder) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } var resolver = builder.ApplicationServices; StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>()); StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>()); return(builder); }
private static void UpdateStaticResolver(IServiceProvider resolver) { StaticInstanceForILanguageServiceProvider.SetInstance(resolver.GetRequiredService <ILanguageServiceProvider>()); StaticInstanceForTextProvider.SetInstance(resolver.GetRequiredService <ITextProvider>()); }