我有一个名为 Core 的中央库 (DLL),许多项目(一些 Web 应用程序、一些 win 表单、一些其他类库)都在使用它。
一些资源存储在核心库中。
当我需要使用 Core 库中的资源文件时,我需要知道文化信息是什么。因为它有时在 win 表单应用程序中使用,有时在 web 应用程序中使用,我不能真正使用来自 HttpContext 或来自 CurrentThread 的文化。
我想这是一个常见的问题,所以我想知道:
在 DAL dll 和 UI 项目之间传递文化信息的好策略是什么?
我有一个名为 Core 的中央库 (DLL),许多项目(一些 Web 应用程序、一些 win 表单、一些其他类库)都在使用它。
一些资源存储在核心库中。
当我需要使用 Core 库中的资源文件时,我需要知道文化信息是什么。因为它有时在 win 表单应用程序中使用,有时在 web 应用程序中使用,我不能真正使用来自 HttpContext 或来自 CurrentThread 的文化。
我想这是一个常见的问题,所以我想知道:
在 DAL dll 和 UI 项目之间传递文化信息的好策略是什么?
您始终可以从 CurrentThread 获取文化。WinForms 和 Web 应用程序都支持它。更好的是:您可能根本不需要为此烦恼,因为 .NET 中的资源管理器将根据当前文化处理此问题。
您可以为线程设置 ui 文化。
那么你已经在 WinForms 的情况下修复了。
在 aspnet 中,您需要为线程设置当前的 ui 文化。您可以将此过程挂接到基本控制器的 OnActionExecuted 用于此目的 (MVC) 或使用 PreInit 事件 (webforms)。这也可以在 HttpModule 中完成。