【问题标题】:Is it possible to define string arrays in .resx resource files?是否可以在 .resx 资源文件中定义字符串数组?
【发布时间】:2011-04-05 01:47:48
【问题描述】:

目前,我这样做:

Names -> "name1|name2|name3"

Resource.Names.Split('|');

是否可以将这些名称定义为资源文件中的数组,这样我就不必每次都通过拆分来解析?

可能是下面这样的?

Names[] -> "name1"
Names[] -> "name2"
Names[] -> "name3"
Resource.Names; // is of type string[]

还有其他更好的方法吗?

【问题讨论】:

  • 这么多年了,有没有好的答案?

标签: .net localization resx resource-files


【解决方案1】:

根据MSDN ResXResourceWriter page,可以使用那里提供的代码生成此类资源。字符串和数组都是可序列化的类型,但当然资源包含 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();
        }
    }
}

也就是说,不,如果没有额外的自定义,就不可能在资源文件中以人类可读的形式定义字符串数组。

【讨论】:

    【解决方案2】:

    您可以使用应用设置来存储您的数组。 转到您的应用程序属性,然后转到设置选项卡。您可以设置设置的名称、选择所需的类型、范围和值。

    欲了解更多信息:http://msdn.microsoft.com/en-us/library/aa730869%28VS.80%29.aspx

    【讨论】:

    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2014-03-20
    相关资源
    最近更新 更多