получить ресурс из ASP.NET App_GlobalResources в отдельной библиотеке DLL - PullRequest
1 голос
/ 02 мая 2010

У меня есть решение с одним веб-проектом и одной библиотекой классов. В веб-проекте у меня есть папка App_GlobalResources с файлом ресурсов. В коде, используемом в веб-проекте, я могу получить доступ к resourcel следующим образом: строка r = Resources.res.ResourceString123;

Как получить эту строку ресурса из библиотеки классов?

Ответы [ 3 ]

1 голос
/ 27 ноября 2015

Я также использую отдельную сборку для своего веб-проекта и библиотек классов. Мне требуется доступ к моим App_GlobalResources в веб-проекте для моих ModelBinder. Я получаю доступ к ресурсу с помощью этого метода (см .: Руководство для начинающих по папкам приложений ASP.NET ).

HttpContext.GetGlobalResourceObject( string classKey , string resourceKey )

Как только предостережение о том, что вам понадобится доступ к HttpContext, который я имею через controllerContext в моем ModelBinder.

Мой код ModelBinder выглядит следующим образом:

var errorMessage = controllerContext.HttpContext.GetGlobalResourceObject( "DefaultModelBinder" , "PropertyValueRequired" ) as string;

Вышеприведенное позволяет мне получать согласованные сообщения об ошибках в сообщениях об ошибках ASP.NET по умолчанию и в моих ModelBinder, даже если они у меня есть в отдельных сборках.

0 голосов
/ 02 мая 2010

Если вы используете Visual Studio 2008, вы можете установить модификатор доступа на в конструкторе ресурсов на public в библиотеке классов.

0 голосов
/ 02 мая 2010

В .net 2.0 вам нужно добавить атрибут InternalsVisibleTo в сборку и установить его в пространство имен, которое необходимо для доступа к файлу:

MSDN: http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx

Другим вариантом может быть создание класса в библиотеке классов, который может возвращать нужные вам строки ...

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...