项目间共享资源的策略
我有一个名为 Core 的中央库 (DLL),许多项目都使用它(一些 Web 应用程序、一些 win 表单、一些其他类库)。
一些资源存储在核心库中。
当我需要使用Core库中的资源文件时,我需要知道文化信息是什么。因为它有时在 win 表单应用程序中使用,有时在 Web 应用程序中使用,所以我无法真正使用 HttpContext 或 CurrentThread 中的区域性。
我想这是一个常见问题,所以我想知道:
在 DAL dll 和 UI 项目之间传递文化信息的好策略是什么?
I have a central library (DLL) called Core that is used by many projects (Some web apps, some win forms, some other class libraries).
Some resources are stored in the Core library.
When I need to use a resource file in the Core library, I need to know what the culture info is. Because it is sometimes used in a win form app, sometimes in a web app, I can't really use the culture from HttpContext or from the CurrentThread.
I imagine that this a common problem, so I am wondering :
What's a good strategy to pass the culture information around between DAL dlls and UI projects?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您始终可以从 CurrentThread 获取文化。 WinForms 和 Web 应用程序都支持它。更好的是:您可能根本不需要担心这个问题,因为 .NET 中的资源管理器将根据当前文化来处理这个问题。
You can always get the culture from the CurrentThread. It's supported both in WinForms and Web Applications. Even better: you'll probably won't need to bother about this at all, as the resource manager in .NET will handle this based on the current culture.
您可以设置线程的 ui 区域性。
那么 WinForms 的情况就已经解决了。
在 aspnet 中,您需要为线程设置当前的 ui 区域性。为此,您可以在基本控制器的 OnActionExecuted 中挂钩此过程 (MVC) 或使用 PreInit 事件 (webforms)。
这也可以在 HttpModule 中完成。
You can set the ui culture for a thread.
Then you are already fixed in case of WinForms.
In aspnet, you will need to set current ui culture for the thread. You can hook this procedure in a base controller's OnActionExecuted for this purpose (MVC) or use the PreInit event (webforms).
This also can be done in an HttpModule.