目前,我这样做:
Names -> "name1|name2|name3"
Resource.Names.Split('|');
是否可以将这些名称定义为资源文件中的数组,这样我就不必每次都通过拆分来解析?
可能类似于以下内容?
Names[] -> "name1"
Names[] -> "name2"
Names[] -> "name3"
Resource.Names; // is of type string[]
也许还有另一种更好的方法?
目前,我这样做:
Names -> "name1|name2|name3"
Resource.Names.Split('|');
是否可以将这些名称定义为资源文件中的数组,这样我就不必每次都通过拆分来解析?
可能类似于以下内容?
Names[] -> "name1"
Names[] -> "name2"
Names[] -> "name3"
Resource.Names; // is of type string[]
也许还有另一种更好的方法?
您可以使用应用程序设置来存储您的阵列。转到您的应用程序属性,然后转到设置选项卡。您可以设置设置的名称、选择所需的类型、范围和值。
欲了解更多信息:http: //msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx
根据MSDN ResXResourceWriter 页面,可以使用那里提供的代码生成此类资源。字符串和数组都是可序列化的类型,但当然资源包含 Base64 编码的序列化数组表示形式,不易读写。但这是可能的,并且在添加生成的 resx 文件时正确检测到类型。我使用以下代码进行测试:
using System.Resources;
internal class Program
{
private static void Main(string[] args)
{
var arr = new[] { "Test", "string", "array", "resources" };
using (var writer = new ResXResourceWriter("./output.resx"))
{
writer.AddResource("strings", arr);
writer.Generate();
}
}
}
也就是说,不,如果没有额外的自定义,就不可能在资源文件中以人类可读的形式定义字符串数组。