将全局资源移动到自定义文件夹

时间:2011-02-09 09:22:10

标签: asp.net-mvc resources

我有一个ASP.NET MVC2应用程序,我不仅需要支持多种语言,还需要支持每种语言的多个版本。我通常使用App_GlobalResources文件夹中的resx文件来解决本地化需求,只要我不需要支持同一语言的多个资源集,这种方法就可以正常工作。

这是一个问题,因为每个客户都应该能够指定一组资源,并且他们可以使用相同的语言。

我最初的想法是建立一个文件结构,每个客户都有一个单独的文件夹,例如App_Data。在这个客户文件夹中,我会放置配置文件和资源。但是我需要一种方法来告诉应用程序它应该在这个特定文件夹中寻找资源而不是App_GlobalResources。

所以我的问题是:这是否可行,我需要做些什么才能使其发挥作用?这是解决这类问题的一种不好的方法,如果情况似乎如此:有没有人有更好的解决方案的建议?

感谢所有的投入。

2 个答案:

答案 0 :(得分:1)

我通常使用自定义ResourceProviderFactory将资源存储在数据库中。如果您可以通过虚拟路径区分不同的客户,那么创建自定义提供程序以查看特定文件夹应该不会很难。

答案 1 :(得分:1)

  

但是我需要一种方法来告诉应用程序它应该寻找   此特定文件夹中的资源而不是App_GlobalResources。

您可能会考虑编译资源,以便将它们部署为DLL而不是在运行时进行编译。要做到这一点,你必须将我们的资源移动到标准的App_GlobalResources。

这篇文章很好地解释了这样做的好处:

http://odetocode.com/Blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx