我知道可以存储要由应用程序检索的本地化资源版本。
我想使用类似的原则并将不同版本的数据存储到资源文件/程序集中,然后使用该版本作为密钥来检索此数据。这可能吗?这是一种常见的技术吗?
我将存储的数据是UI控制数据标识。
例如,我会为每个版本提供多个资源:
Version 1.0 btnID = "thisButton1"
Version 2.0 btnID = "thisButton2"
应用程序将根据当前使用的版本自动确定要选择的资源。
答案 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。*),这可能很麻烦。当然,您可以选择不使用整个版本,而只使用主要或主要和次要版本号。