有没有办法覆盖.NET .resx文件中的特定资源值?

时间:2010-02-25 21:57:04

标签: globalization resx

所以我有:

App_GlobalResources文件/ MyApp.resx

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

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

“电子邮件”=“电子邮件地址” ......变得...... “电子邮件”=“联系电子邮件地址”

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

1 个答案:

答案 0 :(得分:3)

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

因此,如果您使用电子邮件地址作为默认设置,则可以:

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

然后覆盖你会在你的代码中加入这样的东西:

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

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

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

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