在运行时从resx文件读取

时间:2014-07-10 22:03:10

标签: c# winforms visual-studio

我有一个字符串列表我保留了.resx文件,我希望在运行时填充列表。我打算使用ResXResourceReader。我不确定我的资源文件的文件路径是什么,但是按照方向here,一个例外是抛出说它找不到与我对应的bin目录中的.resx文件选定的构建目标。我的资源文件是否是我在运行时可以访问的其他位置,或者我是否需要更改此资源文件上的构建操作,以便它出现在我可以在运行时访问的某个位置?提前谢谢!

1 个答案:

答案 0 :(得分:2)

在源资源管理器中,右键单击该文件并选择属性。有一个名为“复制到输出目录”的设置,它通常默认不复制。将其更改为始终复制或复制更新。

另一方面,我认为您没有按预期使用resx。我相信它更多地用作编译时资源,您可以在源中以静态方式访问文件中的值。相反,如果你想要一个额外的,更动态的资源文件,你应该只是将一个平面文件添加到项目中(使用您首选格式的数据)并将副本设置为输出目录,以便在较新时复制。

编辑:在阅读评论后,我想重申,这是对resx的滥用而不是它的预期用途。我强烈建议使用第二段中提供的建议(我个人将使用带有json的文本文件并将其解析为对象使用json.net的通用反序列化方法),第一位适用于所有类型的文件,只是一种方式您可以通过Visual Studio的GUI与构建脚本(在本例中为csproj文件)进行交互。