Embedding a binary file inside a class library

后端 未结 2 1347
小鲜肉
小鲜肉 2021-02-13 07:09

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 resou

相关标签:
2条回答
  • 2021-02-13 07:44

    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).

    0 讨论(0)
  • 2021-02-13 07:53

    You can do this by adding the file to the Resources through the project properties. Visual studio will then give you a handy class to access your file using the following code

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

    Where the resource name is theBinaryFile.

    0 讨论(0)
提交回复
热议问题