Ресурсы за версию - PullRequest
       0

Ресурсы за версию

6 голосов
/ 04 декабря 2011

Я знаю, что можно хранить локализованные версии ресурсов, которые будут извлечены приложением.

Я хотел бы использовать аналогичный принцип и хранить разные версии данных в файле / сборке ресурса, а затемиспользуйте версию в качестве ключа для получения этих данных.Это возможно?Является ли это распространенным методом?

Данные, которые я буду хранить, являются идентификаторами данных управления пользовательским интерфейсом.

Так, например, для каждой версии у меня будет доступно несколько ресурсов:

Version 1.0    btnID = "thisButton1"  
Version 2.0    btnID = "thisButton2"

Приложение будет автоматически определять, какой ресурс выбрать, основываясь на используемой в данный момент версии.

1 Ответ

1 голос
/ 05 декабря 2011

Вы можете создать собственный класс, который обернет доступ к ресурсам и загрузит правильный файл ресурсов внутри.Предполагая, что вы выбрали имя файла ресурсов Resources.1.0.0.0.resources, вы можете сделать следующее:

  public class ResourceReader
  {
      private static ResourceManager _resourceManager = new ResourceManager(
           "Resources." + System.Reflection.Assembly
               .GetExecutingAssembly()
               .GetName()
               .Version.ToString(),
           Assembly.GetExecutingAssembly());

      // If you have resource property btnID, you can expose it like this:
      public static string BtnID
      {
          get
          {
              return _resourceManager.GetString("btnID");
          }
      }

      // you can add other properties for every value in the resource file.
  }

Все, что вам нужно сделать, это узнать точную версию вашего приложения и убедиться, что такой файл ресурсов существует.Это может быть громоздким, если вы включили автоматическое управление версиями в информации о сборке (например, с использованием 1.0. *).Конечно, вы можете выбрать не использовать всю версию, а только номера основных или вспомогательных версий.

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