(100分求解)通过GetManifestResourceStream方法加载资源文件的问题
我在程序集Imagestream中添加了一个文件夹picture1,picture1中添加了一个图片1.jpg,我想通过以下方法获取该图片,但出错,代码如下
//加载图片
this.pictureBox1.Image = Image.FromStream(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream( "Imagestream.picture1.1.jpg "));
但程序运行后出现错误,提示如下:
“ null值”对于“stream”无效。
请问是何缘故?、
------解决方案--------------------应该是这个名称Imagestream.picture1.1.jpg不对,应该还要namespace
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------将GetExecutingAssembly改成GetEntryAssembly
------解决方案--------------------这里直接用( "picture1.1.jpg ")呢
------解决方案--------------------this.pictureBox1.Image = Image.FromStream(System.Reflection.Assembly.GetEntryAssembly().GetManifestResourceStream( "你的工程项目名称.picture1.1.jpg "));
应该是你的工程项目名称.picture1.1.jpg 不是你的程序集名称.picture1.1.jpg
------解决方案--------------------给你个参考:
public static object GetObject(string KeyName)
{
string text = Assembly.GetExecutingAssembly().GetManifestResourceNames()[0];
ResourceManager manager = new ResourceManager(text.Substring(0, text.LastIndexOf( ". ")), Assembly.GetExecutingAssembly());
object obj2 = manager.GetObject(KeyName);
manager.ReleaseAllResources();
return obj2;
}
------解决方案--------------------你先取得所有的资源名字弹出来看看是不是写错了
代码没问题估计就是没有Imagestream.picture1.1.jpg这个东西
------解决方案--------------------( "Imagestream.picture1.1.jpg "));
或者命名空间没加把?
------解决方案--------------------项目名.文件夹名.文件名
------解决方案--------------------图片的BuildAction是嵌入资源吗?
------解决方案--------------------图片必须设置为嵌入资源,且要用命名空间引用 项目名.文件夹名.文件名