ASP.NET本地资源'文化属性范围

时间:2015-07-23 11:31:55

标签: c# asp.net asp.net-mvc localization resources

我有一个ASP.NET 5应用程序,我目前正在实现本地化。

资源位于ASP.NET文件夹App_LocalResources中,一切正常。至少,它处于开发阶段。我有以下ResourceCultureFilterAttribute

using MyProject.App_LocalResources;

public class ResourceCultureFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string language = GetClientLanguageFromCookiesDoesntMatter();
        var culture = new CultureInfo(language);

        GlobalResources.Culture = culture;
    }
}

现在我在Razor视图中以这种方式访问​​它:

@GlobalResources.SomeResourceName

现在,我担心Culture自动生成的资源类属于static。 是否表示此属性设置为每个帖子每个应用程序池(请指定正确的属性),但不是每个用户
如果是,那么几个用户将覆盖并使用单个值,这肯定会导致本地化问题。

我知道如何通过以下方式替换直接访问来解决此问题:

@GlobalResources.ResourceManager.GetString("ResourceName", 
    new CultureInfo(GetClientLanguageFromCookiesDoesntMatter()); 

但是,也许,有一个更合适的解决方案 - 一些重要的东西,我只是看不见或不知道。也许,有一个特殊的属性,如CurrentUserCulture,特殊的多用户资源类,属性或其他东西,可以为ASP.NET项目提供简单明了的本地化。

0 个答案:

没有答案