Редактор ресурсов Visual Studio 2008 и Access ModifierИсточник: generaltea
При локализации веб-сайтов, написанных с использованием технологии ASP.NET либо ASP.NET MVC необходимо добавить в проект файл ресурсов (*.resx). Приведу пример использования глобального файла ресурсов. B Visual Studio 2008 для начала в проект необходимо добавить папку App_GlobalResources для этого щелкаем правой кнопкой на проекте: Add -> Add ASP.NET Folder -> App_GlobalResources После того, как папка создана, в нее необходимо добавить файл ресурсов, который станет основным для проекта. Щелкаем правой кнопкой на App_GlobalResources: Add -> New Item В появившемся диалоговом окне, создания нового элемента, выбираем Resources File, а в поле Name вводим желаемое имя файла ресурсов. После добавления файла в проект, по умолчанию откроется, встроенный в Visual Studio, редактор ресурсов (Managed Resources Editor), при помощи которого можно добавлять ресурсы в проект (чаще всего это строки). После добавления необходимых строк в файл ресурсов и его сохранения запускается генератор файлов ресурсов ResXFileGenerator, который генерирует класс со статичными полями, то есть будет сгенерирован строго типизированный класс для доступа к ресурсам. По умолчанию этот класс будет создан в пространстве имен Resources с именем, которое было задано в качестве имени файла. Модификатор доступа (Access Modifier), как для класса, так и для его полей по умолчанию internal, что не всегда приемлемо, в частности для атрибутов валидации в проектах ASP.NET MVC. Поэтому иногда необходимо изменить модификатор доступа на public, но вот тут начинаются проблемы. Не могу до сих пор понять в каких случаях, но довольно часто, поле Access Modifier в редакторе ресурсов недоступно. Если просто изменить модификаторы доступа в сгенерированном файле, то при следующем сохранении фала ресурсов эти изменения пропадут. После активного гугления было найдено довольно хорошее решение - Extended Strongly Typed Resource Generator. Для его подключения, необходимо в свойствах фйала ресурсов В свойстве Custom Tool, необходимо поменять значение со значения по умолчанию GlobalResourceProxyGenerator на ResXFileCodeGeneratorEx. При желании можно поменять стандартное пространство имен, изменив для этого свойство Custom Tool Namespace. После таких манипуляций, при каждом сохранении файла ресурсов Access Modifier будет установлен в public. |