我有加载资源文件的问题。我的代码如下所示:
var reader = new ResXResourceReader(@"C:\Users\work\Projects\WebApps\source\MPS\App_GlobalResources\conf\strings.resx")
上面的代码在我的机器上完全正常,但这只是开发,当我将应用程序部署到服务器时,我需要动态加载项目路径。我遇到的问题我无法使用@".\App_GlobalResources\conf\strings.resx"
或@"App_GlobalResources\conf\strings.resx"
App_GlobalResources是此项目的根路径中的文件夹。我试过的一切都行不通。有什么建议吗?
答案 0 :(得分:1)
由于您使用的是ASP.NET Web窗体,因此无需通过ResXResourceReader
加载资源文件。相反,您可以通过多种方式引用资源文件。
首先,对于本地资源(在App_LocalResources
文件夹中),您可以通过以下方式引用它:
C#代码背后:
var resourceValue = this.GetLocalResourceObject("ResourceKey").ToString();
ASPX页面:
<asp:Label ID="MyResource" runat="server" Text="<%$Resources:, ResourceKey %>" />
对于全局资源(App_GlobalResources
),您可以按如下方式引用它。在下面的示例中,您不会在文件名中包含.resx
扩展名,因此如果您有一个名为ResourceStrings.resx
的全局资源文件,则会将其引用为ResourceStrings
:
C#代码背后:
var resourceValue = this.GetGlobalResourceObject("ResourceFile", "ResourceKey").ToString();
ASPX页面:
<asp:Label ID="MyResource" runat="server" Text="<%$Resources:ResourceFile, ResourceKey %>" />
如果您想动态加载文件,请查看Server.MapPath
,您可以按以下方式调用该文件:
Server.MapPath(@".\App_GlobalResources\conf\strings.resx");