内嵌资源,
就是把一个资源文件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对象啦,当然你就可以随意操作,读取等。