C# Net核心-Access IStringLocalizer实例表单静态类
有没有更好的方法将IStringLocalizer对象注入到静态类中,这样我就不会每次都使用方法注入并将localizer实例从视图传递到扩展方法 这是我的视图代码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 {
@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")