В VS 2010, .Net 4.0Я пытаюсь получить имена всех строковых ресурсов в данной DLLКонечная цель, из набора файлов, - получить все ресурсы, проверить, какие из них являются строками, и проверить имена, чтобы увидеть, есть ли у них ключевые слова, которые я ищу.Главное: у меня есть только файл dll, больше ничего.Допустим, мое имя файла
Dim myDllFullFileName as string = "C:\Bob.dll"
Сначала, я думаю, я должен получить Reflection:
Dim myAssembly As New Reflection.Assembly
myAssembly=Reflection.Assembly.LoadFrom(myDllFullFileName)
Затем начинаются проблемы.Если бы я просто искал строковые ресурсы в моем текущем проекте, я мог бы сделать это:
Dim myResourceSet As Resources.ResourceSet
myResourceSet = My.Resources.ResourceManager.GetResourceSet(Globalization.CultureInfo.CurrentCulture, True, True)
For Each Dict As DictionaryEntry In myResourceSet.OfType(Of Object)()
If TypeOf (Dict.Value) Is String Then
If Dict.Key.ToString.Contains("myOwnKeyHere") Then
'work with dict.value'
End If
End If
Next
Это будет хорошо работать для моего текущего проекта.И результаты именно то, что я ищу.Моя проблема в том, что я хочу сделать это с файлами DLL.Я думаю, что я должен быть в состоянии построить ResourSet из моей сборки.Для этого мне понадобится ResourceManager.Чтобы построить новый ResourceManager из myAssembly, я, вероятно, должен использовать этот метод:
Public Sub New(baseName As String, assembly As System.Reflection.Assembly)
И вот где я потерялся: мне не удается получить baseName из используемого мной dll-файла.Я также пытаюсь с
myAssembly.GetManifestResourceNames()
Но это возвращает пустой массивЕсли у кого-то есть идея, я был бы очень признателен.
Спасибо.