Несмотря на то, что вы можете динамически загружать DLL, как подсказывает Хо, вполне нормально использовать ссылку, как вы это сделали. На самом деле, я бы порекомендовал использовать ссылку, если у вас нет особых требований для динамической загрузки сборки ресурса.
Что касается доступа к ресурсам, вам нужно сделать несколько вещей.
В сборке ресурсов вам необходимо убедиться, что ресурсы общедоступны. По умолчанию ресурсы установлены на внутренние, что означает, что вы не увидите ресурсы в приложении winforms. Дважды щелкните Properties \ Resources.resx, чтобы открыть представление ресурсов. На верхней панели инструментов вы увидите ярлык «Модификатор доступа» рядом с выпадающим списком. Изменить выбор на общедоступный.
Вам нужно будет ссылаться на сборку из приложения форм. Вы заявили, что уже сделали это. Просто обратите внимание, что лучший способ сделать это - создать решение, содержащее оба проекта. Затем в приложении формы выберите добавить ссылку. Нажмите на вкладку Проекты вверху. Дважды щелкните по названию проекта библиотеки ресурсов. Это работает лучше, чем прямая ссылка на отладочную DLL, поскольку это означает, что если вы переключитесь между сборкой релиза и сборкой отладки в приложении форм, она автоматически создаст соответствующую версию релиза / отладки вашей сборки ресурсов.
После добавления ссылки вы можете просто ссылаться на тип из библиотеки DLL ресурсов, например,
ResourceDLLNamespace.Properties.Resource.ResourceName
Просто обратите внимание, вам нужно знать о конфликтах имен типов, если вы используете одно и то же пространство имен для приложения форм и ресурсов DLL. В этом случае ваше приложение формы будет иметь доступ как к собственному классу Properties.Resources, так и к ресурсу DLL. Вы можете сделать две вещи, чтобы избежать этого:
- Использовать различное пространство имен между двумя сборками
- В сборку ресурса не включайте словарь ресурсов по умолчанию Properties \ Resources.resx. Удалите его и вручную добавьте новый ресурс, т.е. добавьте новый элемент и выберите «Файл ресурсов». Вы должны обнаружить, что вы не сможете добавить новый словарь ресурсов в папку «Свойства» - добавьте его в корень или другую папку, как вам нужно. Это автоматически даст ему другое имя типа, поскольку он находится в другой папке. Однако вы все равно можете не использовать имя файла ресурсов «Resources», так как если у вас есть все соответствующие пространства имен в области действия с помощью операторов, вы получите ту же проблему, что компилятор не будет знать, какую версию ресурсов использовать.
-Donovan