如何在.Net中的不同资源文件之间进行选择?

时间:2018-08-24 22:57:02

标签: c# resources

我正在尝试找出如何在代码中的两个不同(相同设计)的Resources文件之间进行选择。我可以在网上找到的所有示例均参考具有不同语言的资源文件,这些文件是根据设置区域性值选择的。这对我的探针无效。

这是一个Web服务,它从多个不同的图像存储库系统之一返回图像。根据传递给方法的参数,服务将需要访问图像存储库系统以提取请求的图像。访问映像存储库时,有一堆“魔术字符串” GUID值,它们代表该系统中各种查找的不同ID。该服务的目的之一是向用户隐藏所有这些复杂性。我没有将这些GUID硬编码为代码,而是将它们放入资源文件中。

问题是这样的:每个不同的图像存储库系统都有一组需要使用的魔术字符串ID。但是,这些魔术字符串的实际GUID值根据要连接到的存储库而有所不同。例如,在一个系统上存在一个名为“ GroupIDPrompt”的值,在另一个系统上可能为“ 8a48f393642a753f0164418b670a7cdf”,但在另一系统上可能为“ 63aa28c3637b58680163b25f7e5a5d96”。在代码中,我想将此值仅称为“ Resources.GroupIDPrompt”或类似名称,但是我需要能够根据服务的使用者向我发送的内容来设置将在运行时使用哪个Resources文件。

通常,我可以通过使用接口并根据请求实例化该接口的特定实现来解决此类问题。有两个原因在这里不起作用-#1,资源代码文件是自动生成的,如果我对其进行编辑以使它们从接口继承,则每次重新生成该文件都会被破坏。 #2,所有资源值都被创建为静态成员,并且不允许接口声明静态成员。

我可以扔掉Resources文件,而是构建一个类来暴露这些值,但这意味着将不可修改的魔术字符串重新引入我的代码中。我想这并不可怕,但是资源编辑器确实非常方便管理和编辑这些值。

0 个答案:

没有答案