ресурсы в проекте библиотеки классов

Я хочу добавить некоторый XML-файл как ресурс к моему проекту библиотеки классов. Какая-либо идея, как сделать так и назвать его позже? В приложении Windows я сделал бы это как ClassLibrary1.Properties.Resources.file.xml

Но здесь это не сделало работавший никакая идея, как я делаю это здесь?

10
задан Joel Coehoorn 21 December 2011 в 21:10
поделиться

2 ответа

В этой статье объясняется, как использовать встроенные ресурсы в C #.

Это сводится к

  1. Во время разработки: добавить файл в проект и пометить его как встроенный ресурс (свойства).
  2. Во время выполнения: получить экземпляр сборки, который содержит нужный вам ресурс, затем выведите этот ресурс в виде потока.

var assembly = Assembly.GetExecutingAssembly ();

var stream = assembly.GetManifestResourceStream ("полностью.qualified.name.of.the.resource");

Если вы изо всех сил пытаетесь решить fq имя ресурса, ленивый способ - использовать отражатель , чтобы открыть сборку, в которой он находится. Перейдите в папку «Ресурсы», щелкните правой кнопкой мыши конкретный ресурс и выберите «Копировать».

9
ответ дан 3 December 2019 в 16:51
поделиться

В приложении Windows я бы сделал это как ClassLibrary1.Properties.Resources.file.xml

По умолчанию класс, созданный для доступа к ресурсам, является внутренним, поэтому вы не можете получить к нему доступ из другой сборки. Если вам нужно сделать его общедоступным, выберите файл .resx, перейдите к его свойствам и измените свойство настраиваемого инструмента с «ResXFileCodeGenerator» на «PublicResXFileCodeGenerator». Этот настраиваемый инструмент создает общедоступные классы, которые должны решить вашу проблему.

11
ответ дан 3 December 2019 в 16:51
поделиться