2009-02-10 110 views
1

我在我的应用程序中有一个“GUI字符串”.resx文件,其中包含我显示的所有字符串。我明明可以直接访问每个串通过 Resources.Resource_GUI_Strings.CameraSettings_BrightnessLabel显示resx文件中的所有资源字符串

但我怎么列出.resx文件的所有设置,因为他们的(名字,值)对,是我使用反射唯一的选择?

我想列出所有对(即CameraSettings_BrightnessLabel &“亮度”),以便用户可以编辑每个项目的字符串。这样他们就可以本地化GUI。我不想完全国际化该应用程序,只有用户能够自己完成这项要求。

所以我需要能够读取.resx文件中的值对,然后在用户编辑它们时将其写回。

只是添加我想在应用程序本身的运行时执行此操作,所以我无法解析磁盘上的.resx文件。

+0

为什么不使用反射?这听起来不像是一段循环中运行1000次的代码。这听起来像是在某种Edit-> Options菜单上,所以即使使用Reflection,你也不会注意到任何性能问题。 – BFree 2009-02-10 15:43:37

回答

2

一般情况下我使用ResXResourceReaderResXResourceWriter类,但我的猜测是,您的RESX文件将在运行时被锁定。将文本存储在数据库中而不是资源文件可能会更好,以解决此问题。

This answer显示了如何使自定义资源提供者/资源管理器存储/编辑数据库中的资源。或者,您可以完全放弃资源模型并推出您自己的解决方案。

相关问题