Как получить доступ к внешним ресурсам с сайта Aspx - PullRequest
6 голосов
/ 26 февраля 2010

Мое текущее решение состоит из нескольких библиотек классов и веб-сайта. Я нахожусь в процессе глобализации приложения и понял, что мои ресурсы должны быть доступны для всех проектов, а не только для веб-сайта, поэтому размещение моих ресурсов в папке App_GlobalResources не сработало.

Я добавил свои ресурсы в одну из моих библиотек классов, и теперь я пытаюсь выяснить, как лучше всего получить доступ к ресурсам из моей разметки. Когда мои ресурсы были в папке App_GlobalResources, я мог получить к ним доступ, используя выражение, такое как это:

<$ Resources: MyApp.Name %>  for server controls

Или

<%=Resources.MyApp.Name %> for plain text

Каков наилучший способ доступа к моим ресурсам из файлов aspx моего веб-сайта, если они находятся в библиотеке библиотек классов?

Спасибо за вашу помощь!

Ответы [ 2 ]

4 голосов
/ 10 марта 2010

Я нашел отличную статью, в которой обсуждается расширение модели провайдера ресурсов . Это позволяет использовать выражения для доступа к внешним ресурсам:

Синтаксис выражения $ Resources для модели поставщика по умолчанию (явные глобальные ресурсы) следующий:

<%$ Resources: [resourceType], [resourceKey] %>

Это же выражение можно использовать для доступа к внешним ресурсам, когда настроен ExternalResourceProviderFactory со следующим изменением синтаксиса.

<%$ Resources: [assemblyName]|[resourceType], [resourceKey] %>

Например, чтобы извлечь ресурс из сборки CommonResources.dll из глобального типа ресурса «CommonTerms», вы должны использовать следующее явное выражение.

<asp:Label ID="labGlobalResource" runat="server" Text="<%$ Resources:CommonResources|CommonTerms, Hello %>" ></asp:Label>
0 голосов
/ 04 марта 2010

Я использую библиотеку классов Util, которая помимо множества других полезных классов и функций содержит класс i18n с публичной общей функцией, которая возвращает значение (строку) ресурса в файле ресурса на основе его имени и LCID. Я добавляю ссылку на эту dll в мои веб-проекты и, когда это необходимо, например, в файле с выделенным кодом для метки, которую я пишу:

 MyLabel.Text = i18n.GetResourceString("MyStringName",1033)

Более подробное описание метода, который я использую можно найти здесь Я верю, что с предоставленными там деталями вы можете принять или адаптировать мое решение.

...