2017-08-15 62 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進行測試。
相關問題