2013-09-25 7 views
1

Я пишу приложения, которые используют ресурсы, и у меня есть несколько вопросов о нем:Некоторые вопросы о ресурсах

  1. Может приложение-внутренние ресурсы (My.Resources) можно редактировать, удалять и добавлять, и как я могу сделай это?
  2. Как создать массив ресурсов приложения?
  3. Как я могу прочитать файл .resources и превратить его в массив элементов внутри него?

спасибо.

+0

В вопросе № 1, вы имеете в виду во время выполнения или во время разработки? –

+0

Я имел в виду время работы. – Benjli

ответ

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, текстовых, двоичных или других типах файлов, а также баз данных.

+0

Спасибо. И как я могу загрузить файл .resources в my.resources? – Benjli

+0

Обычно ресурсы собираются в сборку. Вы говорите, что динамически загружаете ресурсы во время выполнения из файла '.resources'? Если это так, это существенно меняет ситуацию. –

+0

Да, я хочу загрузить их во время выполнения, если это возможно, и тогда я смогу удалить или добавить элементы из файла .resources, а затем перезапустить программу. – Benjli

Смежные вопросы