我有一个多语言应用程序。为此,我正在使用开箱即用的 .Net 功能。每种语言在 App_GlobalResources 中都有自己的文件(请参阅下面的图片)

在后面的代码中什么更好?

  • GetGlobalResourceObject("LocalizedText", "ErrorOccured")
  • Resources.LocalizedText.ErrorOccured

  • 第二个使用较少的代码并且它是类型安全的,它将在编译时而不是运行时返回错误。

    alt text http://img340.imageshack.us/img340/5562/langl.gif

    最佳答案

    这些是每种方法的优点:
    GetGlobalResourceObject(和 GetLocalResourceObject )的优点:

  • 您可以指定特定文化而不是使用 CurrentCulture。
  • 您可以使用后期绑定(bind)表达式(即字符串)来决定加载哪个资源。如果您无法提前知道需要加载哪个资源,这将非常有用。
  • 它适用于任何资源提供程序类型。例如,它不仅适用于内置的默认基于 RESX 的提供程序,而且适用于基于数据库的提供程序。

  • 强类型 RESX 类型的优点:
  • 如果访问不存在的资源,则会出现编译时错误。
  • 您在处理项目时获得智能感知。

  • 因此,与许多“哪个最好”的问题一样,答案是:视情况而定!选择最有利于您的特定场景的优势。

    10-07 19:40
    查看更多