Данные ресурса (.resx) не сохраняются - PullRequest
0 голосов
/ 20 октября 2018

Я не могу понять, в чем проблема.Пожалуйста, проверьте фрагменты моего кода.Каждый раз, когда я добавляю данные ресурса, он очищает последние данные и записывает новые записи в .resx.Например, Applications.resx имеет ключ «MyApp1» со значением «MyApp1Path».В следующий раз, если я добавлю ключ «MyApp2» со значением «MyApp2Path», я заметил, что {«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 голосов
/ 20 октября 2018

Да, это ожидается, 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);
   }
}

Отказ от ответственности , не проверено и, возможно, нуждается в проверке ошибок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...