在ASP.Net中,您可以为希望在应用程序中支持的每种文化创建资源文件。
e.g。 (在资源设计师中)HelloWorld =“Hello World”
然后,您可以在代码中引用此资源文件。
Label1.Text = Resources.General.HelloWorld
注意:“常规”是我的常规资源文件的名称。
这意味着Visual Studio已经编译了资源,因此您可以对它们进行类型安全访问(+ intellisense很有用)。
然而,这有多高效?
.Net是否创建了一个包含常量的类,这些常量在运行前编译中以某种方式动态链接 - 所以它们是“内置”到程序集中的?
或是在请求资源时扫描文件(某处)以获取本地化值。
如果发生这种情况,那么第一种似乎更有效率。本地化是否会增加应用程序的性能开销。如果本地化为网站增加了有用的可用性,我认为“合理”的性能打击是可以的。
感谢。
答案 0 :(得分:2)
查看Resource.Designer.cs文件。
基本上,VS.NET创建了一个具有静态属性的类,它使用ResourceManager类通过常量键访问本地化资源。所有字符串和其他资源都作为资源存储在单独的(特定于文化的)附属程序集中。
根据Thread.Current.CurrentUICulture,CLR加载相应的卫星资源程序集。
至于性能,由于ResourceManager在HashTable中缓存资源,因此它应该相对较快。