GetGlobalResourceObject 或 Resources.Resource - 哪个更好?

发布于 2024-08-14 01:55:49 字数 435 浏览 4 评论 0原文

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

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

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

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

替代文本 http://img340.imageshack.us/img340/5562/langl.gif< /a>

I have an application that is multilingual. I'm using the out-of-the-box .Net features for this. Each language has its own file in the App_GlobalResources (see iamge below)

In the code behind what is better?

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

The 2nd one uses less code and it's type safe, it will return an error during compile time and not run time.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

≈。彩虹 2024-08-21 01:55:49

以下是每种方法的优点:

GetGlobalResourceObject(和 GetLocalResourceObject)的优点:

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

强类型 RESX 类型的优点:

  1. 如果访问不存在的资源,则会出现编译时错误。
  2. 您在从事该项目时会获得智能感知。

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

These are the advantages of each approach:

Advantages of GetGlobalResourceObject (and GetLocalResourceObject):

  1. You can specify a particular culture instead of using the CurrentCulture.
  2. You can use a late-bound expression (i.e. a string) to decide which resource to load. This is useful if you can't know ahead of time which resource you will need to load.
  3. It works with any resource provider type. For example, it works not only with the built-in default RESX-based provider but it'll work the same against a database-based provider.

Advantages of strongly-typed RESX types:

  1. You get compile-time errors if you access a resource that doesn't exist.
  2. You get Intellisense while working on the project.

So, as with many "which is best" questions, the answer is: It depends! Choose the one that has advantages that will benefit your particular scenarios the most.

北风几吹夏 2024-08-21 01:55:49

因此,如果您预先知道资源文件和密钥是什么,请使用第二个。

如果您不知道编译时资源文件或(更有可能)密钥是什么,则 GetGlobalResourceObject() 方法非常有用。

So use the second one, if you know up-front what the resource file and key will be.

The GetGlobalResourceObject() method is useful if you don't know what the resource file or (more likely) the key will be at compile time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文