2017-08-15 52 views
1

我有一个asp.net mvc应用程序,它使用不同语言的Resx文件。这些文件存在于Web项目和另一个服务层中。如何为不同的客户定制.net资源文件?

我现在想为特定客户定制一些标签(他们有帐户并登录到我们的网络应用程序)。是否可以使用较少的代码更改进行存档?

已经达到如下的一些文章,但切换到使用数据库似乎需要很多工作。

https://stackoverflow.com/a/19277221/4903729https://msdn.microsoft.com/en-us/library/aa905797.aspxhttp://afana.me/archive/2013/11/01/aspnet-mvc-internationalization-store-strings-in-database-or-xml.aspx/

,似乎可以用一个自定义的资源提供加载根据客户的resx文件可以帮助,但我想到的困难是:

  • 如何传递的customerID到资源提供者。
  • 如何从自定义目录加载资源DLL文件像\ BIN \日\ customer1表* .resources.dll或\ BIN \是\ customer1表* .resources.dll

感谢您的建议!

+0

_have不知道将customerID传递给资源提供者_可能您需要在您的控制器中使用UserPrincipal属性 –

+0

是的谢谢@MahmoudHboubati指出。现在我将看到如何加载客户特定资源... – hazjack

回答

1

这么好,我有一个解决方案工作! (基于Afana的帖子),代码更改应该非常少(创建xml文件,运行ResourceBuilder.exe)。

我所做的定制只是一点:

  • 修改ResourceBuilder来生成一个分部类
  • 手动创建Resources.provider.cs它实例XmlResourceProvider个人客户或接受默认XML资源的所有键

enter image description here

  • 如果这有帮助here is the poc - 更改CustomerId/uiCulture进行测试。
相关问题