我正在编写使用资源的应用程序,我对此有一些疑问:
非常感谢。
答案 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,文本,二进制或其他类型的文件以及数据库中。