У меня есть два проекта Visual Basic 2008 года - каждый - проект библиотеки классов, и другой - проект Windows Forms. В проекте библиотеки классов я определил некоторые строки в ресурсах проекта (свойства проекта> вкладка Resources).
Я разрабатываю тот проект библиотеки классов и получаю файл DLL от папки отладки и сложенный как ссылка в моем проекте Windows Forms.
Как я читаю те строки из файла DLL, на который ссылаются?
Я думаю, вы просто используете System.Reflection.Assembly.Load
для загрузки другой сборки, а затем используйте конструктор System .Resources.ResourceManager
, который принимает сборку.
Обратите внимание, я не думаю, что для этого нужна ссылка.
Хотя вы можете динамически загрузить DLL, как предлагает ho, вполне можно использовать ссылку, как это сделали вы. На самом деле я бы рекомендовал использовать ссылку, если только у вас нет особых требований к динамической загрузке сборки ресурсов.
Что касается доступа к ресурсам, есть несколько вещей, которые вам нужно сделать.
В сборке ресурсов вам нужно убедиться, что ресурсы являются общедоступными. По умолчанию ресурсы установлены как внутренние, что означает, что вы не увидите ресурсы в приложении winforms. Дважды щелкните на Properties\Resources.resx, чтобы открыть представление ресурсов. На верхней панели инструментов вы увидите надпись "Модификатор доступа" рядом с выпадающим комбинированным окном. Измените выбор на public.
Вам нужно будет сослаться на сборку из приложения forms. Вы указали, что уже сделали это. Заметим, что лучший способ сделать это - создать решение, содержащее оба проекта. Затем в приложении "Формы" выберите "Добавить ссылку". Вверху перейдите на вкладку Projects. Дважды щелкните на имени проекта ресурсной DLL. Это лучше, чем ссылаться на отладочную DLL напрямую, так как при переключении между сборкой релиза и сборкой отладки в приложении форм оно автоматически создаст соответствующую версию сборки ресурса для релиза и отладки.
После добавления ссылки вы можете просто ссылаться на тип из DLL ресурсов, например,
ResourceDLLNamespace.Properties.Resource.Resource.ResourceName
Просто примечание, вы должны знать о столкновении имен типов, если вы используете одно и то же пространство имен для приложения форм и DLL ресурсов. В такой ситуации ваше приложение форм будет иметь доступ как к собственному классу Properties.Resources, так и к классу ресурсной DLL. Вы можете сделать две вещи, чтобы избежать этого:
-Donovan