Почему ResourceManager.GetResourceSet возвращает значение null по первому запросу после сборки? (С#)

Я работаю над крупным веб-приложением, созданным на С# (asp.net). У меня есть простая страница aspx, которая обслуживает локализованные строки в клиентском браузере для использования в элементах управления javascript. Чтобы получить строки, я делаю следующее:

ResourceManager _resources = new ResourceManager(_pathname, typeof(ARM).Assembly);
ResourceSet rs = _resources.GetResourceSet(culture, false, false);

//loop through rs and write the keys & values out to the client in plaintext

Все это работает отлично, за исключением первого запроса на страницу сразу после Clean/Build или Rebuild (если я просто внес некоторые изменения, а затем Build, он отлично работает). Таким образом, по первому запросу я получаю исключение с нулевой ссылкой, когда пытаюсь выполнить итерацию ResourceSet. Однако, если я обновляю страницу после ошибки, она отлично работает с этого момента.

Кто-нибудь знает, почему это может произойти?

Ответы

Ответ 1

Второй параметр "createIfNotExist" метода GetResourceSet должен быть правдой, который сообщает ResourceManager загружать ResourceSet, если он еще не загружен.

ResourceSet rs = _resources.GetResourceSet(culture, true, false);