2011-05-16 197 views
4

我有一个名为Core的中心库(DLL),许多项目(一些Web应用程序,一些获胜表单和其他一些类库)都使用它。在项目之间共享资源的策略

某些资源存储在Core库中。

当我需要在Core库中使用资源文件时,我需要知道文化信息是什么。因为它有时用在一个胜利形式的应用程序,有时在一个Web应用程序中,我不能真正使用HttpContext或CurrentThread的文化。

我想,这是一个普遍的问题,所以我想知道:

什么是传递DAL DLL和UI项目之间的文化信息,一个好的策略?

回答

2

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

+0

而在网络应用程序中的当前文化将设置为用户的文化(而不是运行Web应用程序的服务器的文化)? – 2011-05-16 16:01:31

+1

@ Hugo由Web应用程序决定在每个请求上设置当前线程的CurrentCulture/CurrentUICulture。如果他们做得不对,他们会很快找到答案。 – Joshua 2011-05-16 16:04:39

+0

谢谢,从UI线程设置文化信息,并以这种方式让它变得很有意义。 – 2011-05-16 16:10:30

1

您可以设置线程的ui文化。

然后,你已经修复WinForms的情况。

在aspnet中,您将需要为线程设置当前的ui文化。您可以将此过程挂接到基础控制器的OnActionExecuted用于此目的(MVC)或使用PreInit事件(webforms)。 这也可以在HttpModule中完成。

+0

感谢您获取关于控制器/事件处理程序的更多信息,这将非常有用。 – 2011-05-16 16:11:15