如何使用内嵌资源(embedded resource)

来源:互联网 发布:罗马纪录片知乎 编辑:程序博客网 时间:2024/05/22 05:30

 内嵌资源,

就是把一个资源文件bind到DLL里面来,可以在内部使用,而不需要file 在disk 上。

如何embedded resource? very easy:

选择要绑定的文件的属性:

然后可以根据需要选择,是否把这个内嵌的资源拷贝出来:

“Copy if newer”: 指如果磁盘的相同文件已经过期的话,会把内嵌的资源拷贝出来覆盖磁盘上的。

具体选择那个选项,要看具体的业务逻辑拉。

————————————————————————————

下面说说怎么在程序里面取到资源文件:

1。代码:

  Assembly assem = this.GetType().Assembly;
    Stream steam = assem.GetManifestResourceStream(
     "ProjectNameSpace.DirectoryNamespace.FileName");

NoteBook:

 #1. ProjectNameSpace.DirectoryNamespace.FileName, 指内嵌资源文件所在工程的命名空间+文件相对于工程文件的目录结构+内嵌文件的文件名(包含扩展名)

如: 有一个工程test.lib,其命名空间:wisdom.test.lib, 然后再工程的demo 文件夹下面有个swan.doc的word内嵌文件。

这样: wisdom.test.lib.demo.swan.doc

就组成了路径。

#2. this: 这里指的是必须是内嵌资源所在工程的中一个类的引用,因为必须要定位到当前工程。

如:有一个工程A引用了工程B的DLL文件,而内嵌资源文件在B中,那么如果你在A中使用this.GetType(). 当然找不到制定的资源文件了。

 到这里你就可以得到内嵌资源的stream对象啦,当然你就可以随意操作,读取等。 

原创粉丝点击