Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问特定(非当前)区域性的资源字符串_C#_.net_Asp.net Mvc 4_Localization_Resx - Fatal编程技术网

C# 访问特定(非当前)区域性的资源字符串

C# 访问特定(非当前)区域性的资源字符串,c#,.net,asp.net-mvc-4,localization,resx,C#,.net,Asp.net Mvc 4,Localization,Resx,我有一个ASP.NET MVC4应用程序,在“资源”文件夹中有两个资源文件,如下所示: Project Resources Resources.fr-CA.resx Resources.resx 项目 资源 Resources.fr-CA.resx Resources.resx 我根据用户设置设置了当前区域性,使用此设置一切正常 但是,我有一个处理错误的类,既向用户显示错误,又将错误记录到数据库中。我希望使用用户的当前区域性显示错误消息,但使用英文消息将其记录到数据库中 我做了一些研究

我有一个ASP.NET MVC4应用程序,在“资源”文件夹中有两个资源文件,如下所示:

Project Resources Resources.fr-CA.resx Resources.resx 项目 资源 Resources.fr-CA.resx Resources.resx 我根据用户设置设置了当前区域性,使用此设置一切正常

但是,我有一个处理错误的类,既向用户显示错误,又将错误记录到数据库中。我希望使用用户的当前区域性显示错误消息,但使用英文消息将其记录到数据库中

我做了一些研究,找到了几个选项来获取特定区域性的资源字符串,但我遇到了一些问题

HttpContext.GetLocalResourceString(“~/Resources/Resources.resx”,“错误消息”,CultureInfo.CreateSpecificCulture(“en-US”))
throws
未找到此页面的资源类。请检查资源文件是否存在,然后重试。
我尝试过修改uri,但没有成功

HttpContext.GetGlobalResourceString(“资源”,“错误消息”,CultureInfo.CreateSpecificCulture(“en-US”))始终返回null


如何实现这一点(在不更改
线程.CurrentThread.CurrentCulture
的情况下获取特定区域性的资源字符串)?

不要将资源字符串用于日志记录

  • 资源字符串可以在与代码无关的情况下更改,从而降低日志的可搜索性
  • 如果字符串未在代码中内联,则更难理解将写入日志文件的内容

但如果您确实需要从其他语言获取字符串,请使用较低级别的API获取正确的资源集并获取字符串:

谢谢您的回答。我没有用资源字符串记录操作,只记录用户看到的错误消息,以及该消息是什么(除了用英语而不是法语)。我试试你的建议。没关系,我知道了。我需要为第一个参数指定
true
。谢谢!