ResourceManager - как найти необходимое базовое имя для встроенного файла ресурсов?

У меня есть библиотека, загружающая ресурсы из внешнего файла следующим образом:

ResourceManager rm = ResourceManager.CreateFileBasedResourceManager(stringsFileName, ResourcesDir, null)

Теперь я хотел бы изменить загрузку с внешнего файла на встроенный ресурс. Я прикрепил файл ".resources" к проекту и изменил его действие по сборке на "Встроенный ресурс". Загрузка это следующим образом:

   System.Resources.ResourceManager myManager = new
                   System.Resources.ResourceManager(resName,
                   myAssembly); 

Это хорошо компилируется. Однако во время выполнения приложение сообщает о следующей ошибке:

Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что "Strings.3.resources" был правильно встроен или связан с сборкой "TestApp.Resources" во время компиляции или что все требуемые сателлитные сборки являются загружаемыми и полностью подписаны.

Это происходит независимо от имени, которое я передаю, поэтому мой вопрос заключается в том, как найти правильное базовое имя для только что внедренного файла ресурсов?

1 ответ

Решение

Я считаю, что имя ресурса полностью определено, поэтому это будет {assemblyNameSpace}.Strings.3.resources.

Вы можете подтвердить это с помощью дизассемблера / декомпилятора, например dotPeek: http://www.jetbrains.com/decompiler/

Другие вопросы по тегам