Доступ resx файлы ресурсов из другого проекта

Метод TrueForAll List<T>:

List<int> s = new List<int> { 6, 1, 2 };

bool a = s.TrueForAll(p => p > 0);
15
задан ROMANIA_engineer 29 July 2017 в 20:53
поделиться

2 ответа

Выражения ресурсов ( <% $ Resources: ClassKey, ResourceKey%> ) используют класс ResourceExpressionBuilder за сценой. Этот класс может искать только глобальные и локальные ресурсы (в папках веб-сайта App_GlobalResources и App_LocalResources )

. Вместо этого вы можете использовать класс CodeExpressionBuilder для доступа к ресурсам из другой проект. Вот как его использовать.

Добавьте класс CodeExpressionBuilder в папку App_Code:

using System.CodeDom;
using System.Web.Compilation;
using System.Web.UI;

[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder
{
   public override CodeExpression GetCodeExpression(BoundPropertyEntry entry,
      object parsedData, ExpressionBuilderContext context)
   {
      return new CodeSnippetExpression(entry.Expression);
   }
}

Добавьте следующее в раздел system.web / compilation в web.config:

<compilation debug="false">
   ...
   <expressionBuilders>
      <add expressionPrefix="Code" type="CodeExpressionBuilder"/>
   </expressionBuilders>
</compilation>

Наконец, вы можете вызвать строго типизированный класс, созданный для вашего .resx файл:

<asp:Label ID="Label1" runat="server" Text="<%$ Code: ClassLibrary1.Resource1.String1 %>" />
18
ответ дан 1 December 2019 в 03:35
поделиться

Не уверен, что это решит вашу проблему, но смотрели ли вы на метод HttpContext.GetGlobalResourceObject ?

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

3
ответ дан 1 December 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: