Указание пользовательского файла ресурсов для страницы ASP.NET / usercontrol - PullRequest
4 голосов
/ 07 апреля 2011

Если у меня есть страница с именем Default.aspx, ASP.NET автоматически использует файл ресурсов с именем Default.aspx.resx в App_LocalResources для локализации серверных элементов управления на странице.

Но по какой-то причине мне нужночтобы выбрать другой файл, скажем, Default-Custom.aspx.resx.Чтобы обеспечить некоторую предысторию, у меня уже есть Default.aspx.resx, но некоторым пользователям необходимо показывать им другой контент, который я собираюсь поместить в Default-Custom.aspx.resx.

Возможновыбрать файл ресурсов, используемый для TemplateControl в ASP.NET (если не считать пользовательский ResourceProvider) ??

1 Ответ

2 голосов
/ 05 мая 2011

Взгляните здесь:

Метод ResourceManager.GetResourceFileName

Этот метод использует свойство Name CultureInfo как часть имени файла для всех культуркроме инвариантной культуры.Этот метод не просматривает манифест сборки или не касается диска и используется только для создания имени файла ресурса (подходящего для передачи в конструктор ResourceReader) или имени BLOB-объекта ресурса манифеста.

AПроизводный класс может переопределить этот метод для поиска другого расширения, такого как «.ResX», или совершенно другой схемы именования файлов.

Вы можете попробовать что-то вроде этого:

public class ResxResourceManager : ResourceManager
{  
    protected override string GetResourceFileName(
         System.Globalization.CultureInfo culture)
    {
        return base.GetResourceFileName(culture);       
    }

    public string GetResxFileName(System.Globalization.CultureInfo culture)
    {
        return GetResourceFileName(culture).Replace(".resources", ".resx");
    }
}

Подробнее об этом:

Создание настраиваемого поставщика ресурсов

Под покровом BuildManager и обработки ресурсов

...