Встраивание бинарного файла в библиотеку классов - PullRequest
12 голосов
/ 21 мая 2009

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

Полагаю, это возможно через ресурсы.

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

Ответы [ 2 ]

15 голосов
/ 21 мая 2009

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

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

Где имя ресурса - theBinaryFile.

4 голосов
/ 21 мая 2009

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

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

В вашей программе сделайте

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

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

...