项目之间共享资源的策略

4
我有一个名为Core的中央库(DLL),被许多项目使用(一些Web应用程序、一些Win表单和其他类库)。
一些资源存储在Core库中。
当我需要在Core库中使用资源文件时,我需要知道文化信息。因为它有时在Win表单应用程序中使用,有时在Web应用程序中使用,我不能真正从HttpContext或CurrentThread中使用文化。
我想象这是一个常见的问题,所以我想:
在DAL dll和UI项目之间传递文化信息的好策略是什么?
2个回答

2

您可以始终从CurrentThread中获取文化。它在WinForms和Web应用程序中都受支持。更好的是:您可能根本不需要担心这个问题,因为.NET中的资源管理器将根据当前文化处理此问题。


当前 Web 应用程序的文化将根据用户的文化设置(而不是运行 Web 应用程序的服务器的文化)? - Hugo Migneron
1
@Hugo,设置当前线程的CurrentCulture/CurrentUICulture取决于Web应用程序在每个请求上的设置。如果他们没有做对,他们很快就会发现。 - Joshua
谢谢,从 UI 线程设置 Culture Info 并以此方式获取它是很有道理的。 - Hugo Migneron

1

您可以为线程设置 UI 文化。

如果您使用的是 WinForms,则已经解决了此问题。

在 aspnet 中,您需要为线程设置当前的 UI 文化。您可以将该过程挂钩在基本控制器的 OnActionExecuted 上以达到这个目的(MVC),或使用 PreInit 事件(WebForms)。这也可以在 HttpModule 中完成。


感谢提供有关控制器/事件处理程序的额外信息,这将非常有用。 - Hugo Migneron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接