Alex Rivera | Logout

Embedding a binary file inside a class library

Asked 2009-05-21T08:53:08.973
17

Is it possible to embed a custom binary file inside a C# class library and then at runtime read it with a binary reader?

I'm guessing it might be possible through resources.

Many thanks

Edit
Report

1 Answer

6

Yes it is easy:

Add the file to your project and set the "Build action" to "Embedded resource".

In your program do

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

Finding the right resource is a little bit complicating because there is stuff in front of the file name (namespaces etc. set a breakpoint to the if(...) to see the real resource name).

answered 2009-05-21T09:18:21.557

Your Answer