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/