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

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 22 декабря 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...