每个版本的资源

时间:2011-12-04 17:02:15

标签: c# resources

我知道可以存储要由应用程序检索的本地化资源版本。

我想使用类似的原则并将不同版本的数据存储到资源文件/程序集中,然后使用该版本作为密钥来检索此数据。这可能吗?这是一种常见的技术吗?

我将存储的数据是UI控制数据标识。

例如,我会为每个版本提供多个资源:

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

应用程序将根据当前使用的版本自动确定要选择的资源。

1 个答案:

答案 0 :(得分:1)

您可以创建一个自定义类,它将包装对资源的访问并在内部加载正确的资源文件。假设您已选择命名资源文件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。*),这可能很麻烦。当然,您可以选择不使用整个版本,而只使用主要或主要和次要版本号。