在资源文件中现有数据的末尾添加数据

Add data at the end of existing data in resource file

我想在 windows 表单中单击按钮时在资源文件中现有数据的末尾添加数据。 我有一个包含 3 个文本框的 windows 表单 -

text_box1: Name
text_box2: Value
text_box3: Comments
and a button named as Save.

按钮代码:

 private void button1_Click(object sender, EventArgs e)
        {
            myMethod.Create(textBox1.Text, textBox2.Text, textBox3.Text);
        }

在资源文件中添加数据的方法:

public class myMethod
    {
        public static void Create(string myName, string myValue, string myComment)
        {
            try
            {
                ResXResourceReader resxReader = new ResXResourceReader(@"D:\Validator_Tool\resx\resx\myres.resx");
                resxReader.UseResXDataNodes = true;
                IDictionaryEnumerator data = resxReader.GetEnumerator();

            while (data.MoveNext())
            {
                ResXResourceWriter resxWriter = new ResXResourceWriter(@"D:\Validator_Tool\resx\resx\myres.resx");
                var node = new ResXDataNode(myName, myValue);
                node.Comment = myValue;
                resxWriter.AddResource(node);
                resxWriter.Close();
            }

            }
            catch (FileNotFoundException caught)
            {
                MessageBox.Show("Source: " + caught.Source + " Message: " + caught.Message);
            }
        }
    }

请帮我解决这个问题,在资源文件中添加数据,因为使用此代码,我的数据会被现有数据覆盖,但我希望我的数据应附加在现有数据的末尾。 此代码在使用 IDictionaryEnumerator 异常时也给我异常是:

System.InvalidOperationException

这是一个片段,用于向您的 resx 添加新行并保留旧记录:

var reader = new ResXResourceReader("filename");
var node = reader.GetEnumerator();
var writer = new ResXResourceWriter("filename");
while (node.MoveNext())
{
    writer.AddResource(node.Key.ToString(), node.Value.ToString());
}
var newNode = new ResXDataNode("name", "value");
writer.AddResource(newNode);
writer.Generate();
writer.Close();

这将 re-write 您的旧行并添加您的新行。