Как создать менеджер ресурсов в ASP.NET - PullRequest
2 голосов
/ 04 апреля 2010

Я хотел бы создать менеджер ресурсов на своей странице и использовать некоторые данные, хранящиеся в моих файлах ресурсов. (default.aspx.resx и default.aspx.en.resx)

Код выглядит так:

System.Resources.ResourceManager myResourceManager = System.Resources.ResourceManager.CreateFileBasedResourceManager("resource", 
               Server.MapPath("App_LocalResources") + Path.DirectorySeparatorChar, null);

    if (User.Identity.IsAuthenticated)
    {
        Welcome.Text =  myResourceManager.GetString("LoggedInWelcomeText");
    }
    else
    {
        Welcome.Text = myResourceManager.GetString("LoggedOutWelcomeText");
    }

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

Не удалось найти какие-либо ресурсы, подходящие для указанной культуры (или нейтральной культуры) на диске. baseName: ресурс locationInfo: fileName: resource.resources Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Resources.MissingManifestResourceException: Не удалось найти на диске ресурсы, подходящие для указанной культуры (или нейтральной культуры). baseName: ресурс locationInfo: имя файла: resource.resources

Ошибка источника:

Строка 89: еще Строка 90: { Строка 91: Welcome.Text = myResourceManager.GetString ("LoggedOutWelcomeText"); Строка 92:} Строка 93:

Не могли бы вы помочь мне с этим вопросом?

Ответы [ 2 ]

3 голосов
/ 20 мая 2010

Используйте GetLocalResourceObject () , который является частью базы System.Web.Page. Если вы хотите получить доступ к глобальным ресурсам, используйте GetGlobalResourceObject ().

будь проще; -)

1 голос
/ 04 апреля 2010

Согласно MSDN , CreateFileBasedResourceManager ожидает скомпилированные файлы ресурсов. Обычно каждый помещает файлы .resx в App_LocalResources. У вас есть файлы в этом каталоге с именем resource.XXX.resources (где XXX - текущий идентификатор культуры) в этом каталоге.

У меня нет удобной VS для проверки этого в проекте ASP.NET, но обычный способ обработки строк ресурсов - это перейти к свойствам проекта, вкладке «Ресурсы» и создать там строки. Это создает строго типизированную оболочку вокруг ваших ресурсов, избегая необходимости явно создавать свой собственный ResourceManager.

...