定位和使用特定区域性的资源

更新:2007 年 11 月

公共语言运行库为检索打包和部署在附属程序集中的区域性特定资源提供了支持。附属程序集仅包含诸如 .gif 文件之类的资源文件(或松散资源)。它们不包含任何可执行代码。

在附属程序集部署模型中,所创建的应用程序具有一个默认程序集(主程序集)和几个附属程序集。应将默认或非特定程序集的资源与主程序集打包在一起,并为应用程序支持的每一种语言创建单独的附属程序集。因为附属程序集不是主程序集的一部分,所以您可以轻松地替换或更新与特定区域性对应的资源,而不必替换应用程序的主程序集。

ResourceManager 类在运行时提供对区域性特定资源的访问,并使用资源后备进程来控制应用程序检索资源的方式。有关更多信息,请参见 打包和部署资源 主题中的“资源后备进程”子主题。

ResourceManager 对象确定要根据当前线程的 CurrentUICulture 属性来检索哪些资源。例如,如果使用主程序集中的默认英语语言资源以及两个包含法语和德语语言资源的附属程序集来编译应用程序,并且将 CurrentUICulture 属性设置为“de”,则 ResourceManager 对象将检索德语资源。

设置 CurrentUICulture 属性的方式有多种。请注意,设置此属性的方式会影响 ResourceManager 根据区域性来检索资源的方式:

  • 在应用程序代码中,可以将 CurrentUICulture 属性设置为特定区域性。应用程序显式设置此属性时,可以保证无论用户使用哪种浏览器或操作系统语言,总是能够检索到该区域性的资源。请考虑一个用默认英语语言资源和分别包含法语和德语语言资源的两个附属程序集编译的应用程序。如果将 CurrentUICulture 属性设置为“de”,则 ResourceManager 对象总是检索德语资源,即使用户将操作系统的系统语言设置为法语。在让应用程序显式设置此属性之前,请确保这是所需的行为。

    注意   在 ASP.NET 应用程序中,需要显式设置 CurrentUICulture,因为服务器上的设置很可能与传入的客户端请求不匹配。

  • 如果应用程序确实指定了 CurrentUICulture 设置,则会隐式设置 CurrentUICulture 属性。如果应用程序没有显式设置此属性,则由用户可以设置默认语言的 Windows 2000 和 Windows XP 多语言用户界面 (MUI) 产品上的 GetUserDefaultUILanguage 函数进行有关设置。如果用户没有设置 UI 语言,则由系统安装的语言(即操作系统资源的语言)进行设置。

    注意   如果应用程序是基于 Web 的,则它可以将 CurrentUICulture 显式设置为用户浏览器接受的语言。

有关设置 CurrentUICulture 属性的示例,请参见使用 CurrentUICulture 属性

有关检索特定区域性的资源的更多信息,请参见检索附属程序集中的资源ASP.NET 应用程序中的资源

请参见

概念

应用程序中的资源

其他资源

编码和本地化