c# - 每个版本的资源

标签 c# resources

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

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

我要存储的数据是 UI 控件数据标识。

例如,我将在每个版本中提供多个资源:

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

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

最佳答案

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

关于c# - 每个版本的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376946/

相关文章:

c# - 将 byte[] 从 Android 应用程序传递到 C# 控制台应用程序?

c# - 如何让 VS2010 不在方法下拉列表中显示无用信息?

c# - 将 IEnumeration 项目发布到 Controller

android - 使用 Ant 构建的 Android 项目中的库资源

android - OpenGL 纹理(来自 .png 文件)在低端手机上无法正确显示

c# - n维数组

c# - Visual Studio 在设计器模式下打开我的类文件 (.cs)

c# - 如何以编程方式替换 .NET 程序集中的嵌入式资源?

android - 在样式定义中使用@string 资源

c# - Visual Studio 2010 中的问题,更改资源正在将构造函数设置为内部