1

所以我有:

App_GlobalResources/MyApp.resx

具有“电子邮件”=“电子邮件地址”的名称/值对

在我的应用程序中,有没有办法覆盖这个值?在应用程序的某个时刻,我想更改名称/值对的值。

"Email" = "Email Address" ... 变成... "Email" = "Contact Email Address"

并以相同的方式引用 Resources.MyApp.Email。

4

1 回答 1

3

为什么不在资源文件中创建 2 个条目?一个用于“联系电子邮件地址”,一个用于“电子邮件地址”,并使用您的代码决定在具体情况下显示哪一个。

因此,如果您默认使用电子邮件地址,您将拥有:

<asp:Label ID="EmailAddressLabel" runat="server" meta:resourcekey="EmailAddressLabel"></asp:Label>

然后覆盖它,你会在你的代码后面放这样的东西:

if (your logic here)
{
     Email.Text = (String)GetLocalResourceObject ("ContactEmailAddressLabel");
}

以上是针对本地资源文件的。对于全球,您可以使用:

Email.Text = (String)GetGlobalResourceObject("MyApp", "ContactEmailAddressLabel");

这将为您读取全局资源密钥。

于 2010-02-25T22:16:58.137 回答