从ResXResourceReader中的项目C#读取资源文件

时间:2016-06-08 19:50:10

标签: c# visual-studio resx

我有加载资源文件的问题。我的代码如下所示:

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是此项目的根路径中的文件夹。我试过的一切都行不通。有什么建议吗?

1 个答案:

答案 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");