【问题标题】:Best way to display Global Resource Value显示全球资源价值的最佳方式
【发布时间】:2013-08-24 18:00:02
【问题描述】:

我有一个包含许多值的全局资源文件

目前在代码中我这样称呼这个值

TxtSuccess.Text =  (string) GetGlobalResourceObject("GlobalResource", "msgSuccess");

但如果在设计后期我们需要重命名变量,那么维护将是一件痛苦的事情。

这样做会更好吗?

public class AppGlobalConstants
{
    public string MsgSuccess{ get; private set; }

    public AppGlobalConstants()
    {
       MsgSuccess= (string) GetGlobalResourceObject("GlobalResource", "msgSuccess");
    }
}

如果以后团队想要更改其中一些全局资源的名称,他们可以这样做,而无需修改使用这些资源的任何页面。

我们希望使用全局变量,因为我们的网络应用程序(asp.net 网络表单 4.5)计划将来可用于其他国家和语言。

【问题讨论】:

  • 不使用 VS 及其内置支持从 RESX 自动生成资源类以进行常规本地化的任何特殊原因?
  • 如果名称需要更改。我们已经开始通过应用程序引用 -
  • 我明白了。我个人更喜欢编译时失败来完成对每个资源字符串重命名的手动测试,但有些人喜欢手动测试......

标签: c# asp.net resources constants


【解决方案1】:

我宁愿做这样的事情:

public static class AppGlobalConstants
{
    public static string MsgSuccess
    {
        get
        {
            return (string) GetGlobalResourceObject("GlobalResource", "msgSuccess");
        }
    }
}

这样,值是静态的。如果名称更改,您只需修改此类中的字符串。因为在这个类中一切都是静态的,你可以这样做:

Console.WriteLine(AppGlobalConstants.MsgSuccess);

如果需要,您还可以向属性添加 set 访问器。因为一切都是静态的,所以不需要创建这个类的实例。

【讨论】:

  • 是的,我就是这么想的
  • 对我来说似乎最有效。
猜你喜欢
  • 2022-01-26
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多