C# asp.net中特定于客户的资源文件

C# asp.net中特定于客户的资源文件,c#,asp.net,globalization,C#,Asp.net,Globalization,我正在寻找一种方法来扩展我的应用程序,以使用特定于客户端的资源文件。目前,我有不同文化的资源文件,这是工作良好。但是现在我想为每个客户机提供不同的资源文件,如果没有客户机特定的文件,那么应该加载默认文件 这就是我目前正在做的: App_全球资源 GR.resx GR.ru-ru.resx 我是这样读资源的 文本=“” 或 GetGlobalResourceObject(“GR”、“主页”) 这就是我想要的: App_全球资源 GR.resx GR.ru-ru.resx 客户1 GR.resx G

我正在寻找一种方法来扩展我的应用程序,以使用特定于客户端的资源文件。目前,我有不同文化的资源文件,这是工作良好。但是现在我想为每个客户机提供不同的资源文件,如果没有客户机特定的文件,那么应该加载默认文件

这就是我目前正在做的:

App_全球资源 GR.resx GR.ru-ru.resx

我是这样读资源的

文本=“”

GetGlobalResourceObject(“GR”、“主页”)

这就是我想要的: App_全球资源 GR.resx GR.ru-ru.resx

客户1 GR.resx GR.ru-ru.resx

客户2 GR.resx GR.ru-ru.resx


我不想以阅读参考资料的方式更改页面上的代码,有可能吗?

好的,更安全的是,在评论中讨论后,我真正理解您的问题。我将使用下面的解决方案。基于您的利润示例:

  • 为利润准备几个不同的条目(取决于客户类型或其他):

    • 键1:“类型1利润”值:“可用利润”
    • 键2:“类型2利润”值:“总利润”
  • 其中,TypeN是您的客户类型

    然后在视图中执行以下操作:

    text='<%$ Resources:GR, string.Format("{0}Profit", customer.Type) %>'
    

    多亏了这个解决方案,您应该得到您想要的密钥,当然还有客户的特定价值

    你说的客户是什么意思?对不起,我指的是客户。。。一位客户可能会说“开始”到“主页”,所以我希望每个客户都有一个不同的资源文件。理论上,我理解您的问题,但无法想象从用户(客户)的角度来看它会如何工作。用户可以选择定义自己的字典(每个单词)或什么?正如您所知,资源与语言和文化有关,但它始终是唯一的选择。在您的解决方案中,每个用户都需要自己的字典,但我们应该从何处获取字典的值?因为密钥非常明显,我正在开发一个金融应用程序,每个客户引用的术语似乎都不同。例如,对于某些客户,“利润”可能是“可用利润”、“总利润”或“我的利润”,因此在本例中,我在资源文件中的键是“利润”,每个客户在其自己的资源文件中的值将不同。因为我的代码库对所有客户都是相同的,所以我无法在应用程序中唯一的资源文件中更改它们。客户是否需要多语言的字符串?或者语言总是固定为每个用户一种?然后我会进行一些定制,而不是资源。谢谢你的建议,但恐怕我必须在许多地方更改代码。我想我需要编写一个定制的资源提供者模型,并查看特定于客户的目录
    GetGlobalResourceObject("GR",string.Format("{0}Profit", customer.Type))