ASP.Net本地化性能

时间:2010-11-25 14:00:54

标签: c# asp.net localization

在ASP.Net中,您可以为希望在应用程序中支持的每种文化创建资源文件。

e.g。 (在资源设计师中)HelloWorld =“Hello World”

然后,您可以在代码中引用此资源文件。

Label1.Text = Resources.General.HelloWorld

注意:“常规”是我的常规资源文件的名称。

这意味着Visual Studio已经编译了资源,因此您可以对它们进行类型安全访问(+ intellisense很有用)。

然而,这有多高效?

  • .Net是否创建了一个包含常量的类,这些常量在运行前编译中以某种方式动态链接 - 所以它们是“内置”到程序集中的?

  • 或是在请求资源时扫描文件(某处)以获取本地化值。

如果发生这种情况,那么第一种似乎更有效率。本地化是否会增加应用程序的性能开销。如果本地化为网站增加了有用的可用性,我认为“合理”的性能打击是可以的。

感谢。

1 个答案:

答案 0 :(得分:2)

查看Resource.Designer.cs文件。

基本上,VS.NET创建了一个具有静态属性的类,它使用ResourceManager类通过常量键访问本地化资源。所有字符串和其他资源都作为资源存储在单独的(特定于文化的)附属程序集中。

根据Thread.Current.CurrentUICulture,CLR加载相应的卫星资源程序集。

至于性能,由于ResourceManager在HashTable中缓存资源,因此它应该相对较快。