1

我正在编写使用资源的应用程序,对此我有一些疑问:

  1. 可以编辑、删除和添加应用程序内部资源 (my.resources),我该怎么做?
  2. 如何创建应用程序内部资源的数组?
  3. 如何读取 .resources 文件并将其转换为其中的项目数组?

非常感谢。

4

1 回答 1

1

嵌入式资源不能在运行时更改。您可以将它们作为集合访问。例如:

' Get resource value by string name
Dim value1 As Object = My.Resources.ResourceManager.GetObject("name1")
Dim value2 As String = My.Resources.ResourceManager.GetString("name2")

' Loop through list of resources
Dim rset As ResourceSet = My.Resources.ResourceManager.GetResourceSet(Thread.CurrentThread.CurrentUICulture, True, True)
For Each i As DictionaryEntry In rset
    Dim name As String = i.Key
    Dim value As Object = i.Value
Next

如果您想在运行时读取和修改存储在外部.resources文件中的资源,.NET 框架在System.Resources命名空间中提供了一些您可以使用的类。该类ResourceReader允许您读取.resources文件,如下所示:

Using reader As New ResourceReader("test.resources")
    For Each i As DictionaryEntry In reader
        Dim name As String = i.Key
        Dim value As Object = i.Value
    Next
End Using

您可以使用ResourceWriter该类创建一个新.resources文件,如下所示:

Using writer As New ResourceWriter("test.resources")
    writer.AddResource("name1", value1)
    writer.AddResource("name2", value2)
End Using

然而,真正要问的问题是,你必须使用.resources文件吗?通常 .resource 文件仅用作程序集构建步骤,以便它们可以嵌入到程序集中。如果您想将数据存储在外部文件中,通常您会选择以其他格式存储它们。.NET 提供了许多对象序列化选项,可以轻松地将对象存储在 XML、文本、二进制或其他类型的文件以及数据库中。

于 2013-09-25T13:32:30.317 回答