C# Net核心-Access IStringLocalizer实例表单静态类

C# Net核心-Access IStringLocalizer实例表单静态类,c#,asp.net-core,dependency-injection,static-classes,asp.net-core-localization,C#,Asp.net Core,Dependency Injection,Static Classes,Asp.net Core Localization,有没有更好的方法将IStringLocalizer对象注入到静态类中,这样我就不会每次都使用方法注入并将localizer实例从视图传递到扩展方法 这是我的视图代码 @using Microsoft.AspNetCore.Mvc.Localization @inject IViewLocalizer Localizer @Html.GetString("some key", Localizer) .... 和扩展方法本身: public static class Extensions {

有没有更好的方法将IStringLocalizer对象注入到静态类中,这样我就不会每次都使用方法注入并将localizer实例从视图传递到扩展方法

这是我的视图代码

@using Microsoft.AspNetCore.Mvc.Localization

@inject IViewLocalizer Localizer

@Html.GetString("some key", Localizer)

....
和扩展方法本身:

public static class Extensions
{
    public static string GetString (this IHtmlHelper helper, string key, IViewLocalizer localizer)
    {
        return localizer[key]
    }
}

由于所访问代码的静态性质,需要应用服务定位器方法

通过
IHtmlHelper.ViewContext

public static class Extensions {
    public static string GetString (this IHtmlHelper helper, string key) {
        IServiceProvider services = helper.ViewContext.HttpContext.RequestServices;
        IViewLocalizer localizer = services.GetRequiredService<IViewLocalizer>();
        return localizer[key]
    }
}
@Html.GetString("some key")