在 C# 中修改 .resx 文件
我有一个包含名称-值对(两个字符串)的 .resx
文件。 现在我想使用 C# 以编程方式修改某些名称/值对中的值。 我怎样才能做到这一点?
I have a .resx
file that contains name-value pairs (both strings). Now I want to modify the values in certain name-value pairs programmatically using C#. How can I achieve that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
有一个用于资源管理的完整命名空间:System.Resources。 查看 ResourceManager 类以及 ResXResourceReader 和 ResXResourceWriter。
http://msdn.microsoft.com/en-us/library/system .resources.aspx
我设法掌握了一种非常古老的调试方法,当我测试一些与资源相关的东西时,我曾经使用过该方法。 这应该对你有用。
There's a whole namespace for resource management: System.Resources. Check out the ResourceManager class, as well as ResXResourceReader and ResXResourceWriter.
http://msdn.microsoft.com/en-us/library/system.resources.aspx
I managed to lay my hands on a very old debug method that I used to use at one point when I was testing some resource related stuff. This should do the trick for you.
如果你想保留资源文件中现有的注释,那么使用这个(基于SirMoreno的代码修改)
If you want to keep the existing comments in the resource files then use this (Based on SirMoreno's code modified)
Womp 做对了 (10x)。
但这里有一段代码保持 XML 文件顺序,在文件末尾添加新内容。
(用于源代码控制)
Womp got it right (10x).
But here is a code that keeps the XML file order, add new at the end of the file.
(for source control)
这是改进的 Womp 的答案 - 没有过时的哈希表,检查文件是否存在并使用 LINQ:
This is improved Womp's answer - without obsolete Hashtable, checking if file exists and using LINQ:
所有其他答案都使用 ResXResourceWriter,但对于某些特殊情况,简单地将 Resources.resx 文件作为 XML 文档使用可能是可行且更好的。
我有一个特定的情况,我想要操作一组图标文件的 Resources.resx 条目。 可能有多达数百个条目,我可以指望它们看起来都像这样:
我尝试在该程序中使用 ResXResourceWriter 和 ResXResourceReader,但最终我将各种 Resources.resx 文件作为 XML 文档打开,并在那样。 整个程序太大了(而且太特定于应用程序),无法在这里发布,但我将发布一些代码来展示一些可以使用的技术。
All of the other answers make use of ResXResourceWriter, but for certain special cases it may be feasible and better to simply work with the Resources.resx file as an XML document.
I have a specific situation where I want to manipulate the Resources.resx entries for a set of icon files. There may be up to several hundred entries, and I can count on them all looking exactly like this:
I tried using ResXResourceWriter and ResXResourceReader for this program, but I ended up instead opening the various Resources.resx files as XML documents and manipulating them in that way. The whole program is much too large (and too application-specific) to post here, but I'll post a few stumps of code to show some of the techniques that can be used.
在 Visual Studio 中,转到资源管理器窗口,您将看到其顶部的菜单“访问修饰符”将其更改为公共并保存。 将会更新
In visual studio, go to the resource manager window than you will see a menu top of it "Access Modifier" change it to public and save. It will be updated
这是我基于 Ers 和 SirMoreno 代码的版本。 只是短了一点。 这仍然不是处理元数据,这对我来说是可能的但不是必需的。
This is my version based on Ers' and based on SirMoreno's code. Just a little shorter. This is still not handeling metaData which is possible but not necessasry for me.