有次用reflector工具,查看了一个dll,发现里面很多漂亮的图标资源。于是开始想怎样在程序中动态去引用这些资源了?用google搜了下。自已也尝试了几个方法。找到了一个可行的。
// 加载dll,并获得期资源名称列表
string[] files = System.Reflection.Assembly.Load("DevComponents.DotNetBar2").GetManifestResourceNames();
//在资源列表中任选一名称,获得对应资源的流数据
System.IO.Stream ms = System.Reflection.Assembly.Load("DevComponents.DotNetBar2").GetManifestResourceStream ("DevComponents.DotNetBar.SystemImages.BlankStartButtonPressedVistaBlack.png");
//将流数据保存为文件。生成abc.png文件在程序的执行目录下。
(new Bitmap(ms)).Save("abc.png");
在这解决这个问题的过程中还无意中搞清楚了。VS2008中调用资源的原理(在用VC做开发时。来龙去脉得弄清楚。用VS2008时 IDE为了包办了大部分工作,拖两下点两下,所见就所得了)
我的当前项目为UI,在界面设计时给某控件加个背景图片时。IDE会自动在UI项目下生成一个Properties栏目,在该栏目下有一个Resources.resx文件双击它会显示所有项目加入的图像资源,右键查看其代码时
会看到很多如
<data name="addUser" type&#