Вставка двоичного файла внутри библиотеки классов

Можно ли встроить собственный двоичный файл внутри библиотеки классов С#, а затем во время выполнения прочитать его с помощью двоичного считывателя?

Я предполагаю, что это возможно с помощью ресурсов.

Большое спасибо

Ответ 1

Вы можете сделать это, добавив файл в ресурсы через свойства проекта. Visual studio затем предоставит вам удобный класс для доступа к вашему файлу с помощью следующего кода

byte[] theFile = myNamespace.Properties.Resources.theBinaryFile;

Если имя ресурса - это BinaryFile.

Ответ 2

Да, это легко:

Добавьте файл в проект и установите для параметра "Создать действие" значение "Встроенный ресурс".

В вашей программе выполните

foreach (string name in Assembly.GetExecutingAssembly().GetManifestResourceNames())
{
  if (name.EndsWith("<name>", StringComparison.InvariantCultureIgnoreCase))
  {
    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
    {
      // ...
    }
    break;
  }
}

Поиск нужного ресурса немного усложняет, потому что перед именем файла есть вещи (пространства имен и т.д.), чтобы установить точку останова в if (...), чтобы увидеть имя реального ресурса).