При использовании ресурсов в ASP.Net вы увидите, что в файлах .resx (ResXCodeGen) используется специализированный компилятор (пользовательское свойство Tool)
Суть в том, что ваши ресурсы скомпилированы в класс. Имя этого класса - это имя, которое вы должны использовать, когда хотите обратиться к ресурсам там.
Имя класса генерируется следующим образом:
{пространство имен проекта} {структура папок} {имя файла} .resx (.resx НЕ является частью сгенерированного имени)
Поскольку вы упомянули, что ваш файл resx находится в каталоге с именем "Locales / resources", вам нужно использовать имя (при условии, что файл resx называется 'locales.resx')
"locales.resources.locales"
Добавление языка и локали, таких как "uk-en", добавляется менеджером ресурсов, загружая соответствующую сборку на основе культуры, указанной при создании экземпляра ResourceManager. Если ничего не указано, используется Thread.CurrentCulture. Вы не должны использовать расширения языка / локали самостоятельно, предоставьте это менеджеру ресурсов.
Если вы не уверены, как закончится класс ресурсов, вы всегда можете посмотреть на MSIL или использовать отражатель, чтобы определить имя класса ресурсов в фактической развернутой сборке.
; - Добавлено после комментариев, где размещены -------
Я также посмотрел на какой-то другой код, который у меня был;
Вы пробовали подход Reflection on App_GlobalResources?
1: Вы загружаете библиотеку «App_GlobalResources», находясь в контексте веб-сайта (в HttpHandler, Aspx, Ascx и т. Д.). =>
Assembly.Load ( "App_GlobalResources");
2: Просмотрите доступные типы и получите свойство ResourceManager для каждого типа. =>
PropertyInfo pi = type.GetProperty ("ResourceManager");
resManager = pi.GetValue (null, новый объект [] {}) как ResourceManager;
3: если он был, получите требуемый ResourceSet => resManager.GetResourceSet (englishCulture, true, true);
Надеюсь, это поможет.