关于资源的一些问题

时间:2013-09-25 12:43:05

标签: arrays vb.net resources my.resources

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

  1. 可以编辑,删除和添加app-inside资源(my.resources),我该怎么办?
  2. 如何创建app-inside资源数组?
  3. 如何读取.resources文件并将其转换为其中项目的数组?
  4. 非常感谢。

1 个答案:

答案 0 :(得分: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,文本,二进制或其他类型的文件以及数据库中。