资源(.resx)数据未保存

时间:2018-10-19 22:40:27

标签: c# resources

我不知道怎么了。请检查我的代码片段。每次添加资源数据时,它都会清除最后一个数据并在.resx中写入新记录。 例如,Applications.resx具有值为“ MyApp1Path”的“ MyApp1”键。下次,如果我添加具有“ MyApp2Path”值的“ MyApp2”键,则会注意到{“ MyApp1”,“ MyApp1Path”}不存在。

//Adding Application in Applications List
ResourceHelper.AddResource("Applications", _appName, _appPath);

这是ResourceHelper类:

public class ResourceHelper
{
    public static void AddResource(string resxFileName, string name, string value)
    {
        using (var resx = new ResXResourceWriter(String.Format(@".\Resources\{0}.resx", resxFileName)))
        {
            resx.AddResource(name, value);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

是的,ResXResourceWriter只是添加了节点,没有追加。

但是,您可以读出节点,然后再次添加它们

public static void AddResource(string resxFileName, string name, object value)
{
   var fileName = $@".\Resources\{resxFileName}.resx";

   using (var writer = new ResXResourceWriter(fileName))
   {
      if (File.Exists(fileName))
      {
         using (var reader = new ResXResourceReader(fileName))
         {
            var node = reader.GetEnumerator();
            while (node.MoveNext())
            {
               writer.AddResource(node.Key.ToString(), node.Value);
            }
         }
      }

      writer.AddResource(name, value);
   }
}

免责声明 ,未经测试,可能需要进行错误检查