Embedding a binary file inside a class library

家住魔仙堡 提交于 2019-12-21 03:52:38

问题


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


回答1:


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.




回答2:


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



来源:https://stackoverflow.com/questions/891958/embedding-a-binary-file-inside-a-class-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!