GetGlobalResourceObject或Resources.Resource - 什么更好?

aro*_*ron 4 asp.net globalization culture cultureinfo

我有一个多语言的应用程序.我正在使用开箱即用的.Net功能.每种语言在App_GlobalResources中都有自己的文件(参见下面的iamge)

在代码背后有什么更好的?

  1. GetGlobalResourceObject("LocalizedText","ErrorOccured")
  2. Resources.LocalizedText.ErrorOccured

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

替代文字http://img340.imageshack.us/img340/5562/langl.gif

Eil*_*lon 8

这些是每种方法的优点:

GetGlobalResourceObject(和GetLocalResourceObject)的优点:

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

强类型RESX类型的优点:

  1. 如果访问不存在的资源,则会出现编译时错误.
  2. 在处理项目时,您将获得Intellisense.

因此,与许多"哪个是最好的"问题一样,答案是:这取决于!选择具有最有利于您的特定方案的优势的那个.