如何使用GetManifestResourceStream

在做开发时想要从程序集中加载一个xml文件数据,可是在运行后确取不到值,值始终是null。

代码如下:

Stream ss = this.GetType().Assembly.GetManifestResourceStream("TESTdemo.demo.FormDemo.xml");
myControl.LoadDocument(ss, null);//ss为null;

经查资料:GetManifestResourceStream中的资源清单,资源清单格式:命名空间.资源文件名,(注意:资源清单格式 加黑加粗以及加红的特殊点),

所在的程序集的命名空间名为TESTdemo,直接在命名空间建立子文件demo,又在demo建立资源文件FormDemo.xml,所以上面的代码就用(“命名空间名”.“资源清单名”)

如上代码运行后取得的值为null,经网上查找资料,原因是虽然资源清单在当前程序集下,但是还要将其属性设置为“嵌入资源”才行。

 若在其中的子文件夹下那么代码中就应该用(“命名空间名”.“子文件夹名”.“资源清单名”)  (此情况本人已测试可以获得数据,重要路径正确就可以,见最后一个图)

设置如下:

       工程中右键单击资源清单文件(FormDemo.xml),选择属性(Properties)。

       

 

若在其中的子文件夹下那么代码中就应该用(“命名空间名”.“子文件夹名”.“资源清单名”)  (此情况本人已测试可以获得数据)

posted @ 2016-03-22 15:19  龙骑科技  阅读(2168)  评论(1编辑  收藏  举报