Спонсор: Microsoft
Опубликован: 30.01.2013 | Доступ: свободный | Студентов: 1198 / 140 | Длительность: 17:23:00
Теги: .net, ajax, asp, www, интранет
Лекция 10:

Интернациональные приложения ASP.NET

Глобальные ресурсы

Глобальные ресурсы – это файлы ресурсов, которые размещены в приложении и доступны в рамках всего проекта. Глобальные файлы ресурсов являются наиболее часто используемым типом ресурсов в приложениях на базе .NET Framework. Файлы ресурсов могут содержать строки, изображения и бинарное содержимое (например, содержимое файла). При этом каждый ресурс имеет собственное имя. Имя необходимо для того, чтобы к этому ресурсу можно было обратиться.

Файлы ресурсов имеют расширение "resx". В одном приложении может содержаться несколько файлов ресурсов. Для добавления файла ресурсов необходимо выбрать пункт "Add new item" в контекстном меню проекта.


В появившемся диалоге следует выбрать шаблон "Resource File".

После создания файла ресурсов его можно открыть в Visual Studio встроенным редактором ресурсов и добавить туда необходимые значения. Добавление строковых ресурсов выглядит следующим образом.


Также в файл ресурсов можно добавить изображения и другие ресурсы. Для этого нужно выбрать соответствующую опцию.


При добавлении изображений, они также появятся в списке файла ресурса.


Однако, физически файл изображения хранится в проекте в специальной папке для хранения ресурсов. Файл ресурсов содержит только ссылку на это изображение.


После добавления всех необходимых ресурсов в файл ресурса в проекте будет содержаться файл "Resource1.resx". Содержимое этого ресурсного файла будет использоваться по умолчанию при обращении к этому ресурсу. Если необходимо создать файл ресурсов для конкретной культуры, следует скопировать файл ресурсов и создать в проекте одноименный файл, но содержащий суффикс в имени, соответствующий определенной культуре. Например, можно создать два файла ресурсов – для русскоязычной и англоязычной культуры.


В этом случае следует изменить содержимое файлов для каждой культуры. Имена ресурсов внутри ресурсного файла должны оставаться неизменными.


Аналогичным образом можно создать файлы ресурсов для всех необходимых культур.

Для получения доступа к информации из ресурсного файла используется объект "ResourceManager" из пространства имен "System.Resources". Однако, использовать этот класс не всегда удобно, поскольку для обращения к содержимому ресурсного файла требуется написать некоторое количество избыточного программного кода.

Для того, чтобы сделать работу с файлами ресурсов более удобной, при создании файла ресурсов, наряду с файлом "resx" создается автогенерируемый код на языке C#, который содержит весь необходимый код для обращения к данным из файла ресурсов. В нашем случае этот файл называется "Resource1.Designer.cs".


Таким образом, для обращения к файлу ресурсов следует пользоваться уже готовыми классами, которые позволяют получить информацию из файла ресурсов. Имя класса, который позволяет обратиться к ресурсам в данном случае будет эквивалентно имени файла ресурсов. Поскольку в нашем случае мы создали ресурсный файл с именем "Resource1.resx", то для обращения к ресурсам следует использовать класс "Resource1". Этот класс содержит свойства для всех значений файла ресурсов. Обращаясь к этим свойствам можно получить содержимое файла ресурсов.


Как видно, класс, представляющий ресурсный файл содержит не только строковые свойства, но и позволяет получить доступ к бинарным данным (в нашем случае это изображение).


Аналогичным образом можно обратиться к файлу ресурсов из разметки страницы.


При обращении к ресурсному файлу всегда учитывается текущая культура. Таким образом, если к созданному нами приложению обращаются пользователи с различной культурой, они будут видеть содержимое, которое получено из соответствующего ресурсного файла:

  • пользователи с русскоязычной культурой – значение из файла "Resource1.ru.resx";
  • пользователи с англоязычной культурой – значение из файла "Resource1.en.resx";
  • остальные пользователи – значение из основного файла "Resource1.resx".

Таким образом, файлы ресурсов позволяют отделить логику приложения от данных, которые должны быть представлены на различных языках.

Краткие итоги

Глобальные ресурсы – это файлы ресурсов, информация из который доступна для всех программных компонентов приложения. Глобальные ресурсы могут содержать данные различных типов – строки, изображения и бинарные данные. Для обращения к глобальным ресурсам используется объект "ResourceManager". Однако, для более удобного обращения к ресурсным файлам используется автоматически генерируемый класс для данного файла ресурсов. Этот класс содержит набор статических свойств, которые позволяют получить данные для конкретного ключа файла ресурсов.

Марина Воробьева
Марина Воробьева
Виктория Ткаченко
Виктория Ткаченко

Проигрыватель не работает. После нажатия кнопки Play ничего не происходит.

Андрей Коробейников
Андрей Коробейников
Россия, Новосибирск, Сибирский государственный университет телекоммуникаций и информатики, 1999
Вадим Трунов
Вадим Трунов
Россия