问题的引入

在编程过程中遇到下面这样一个问题:

有这样一个方法:

public static AlphaImage CreateFromResource(string imageResourceName)
{
MemoryStream stream =
(MemoryStream)Assembly.GetCallingAssembly().GetManifestResourceStream(imageResourceName); return CreateFromStream(stream);
}

在调用的时候总是得到stream是null.为什么呢?

看看我们的调用和程序的架构:

bgPixBox.Image = AlphaImage.CreateFromResource("AlphaMobileControls35Test.Resources.Wallpaper.jpg");

 alphaPictureBox1.Image = AlphaImage.CreateFromResource("AlphaMobileControls3.5Test.Resources.Toolbar.png");

 btn1.BackgroundImage = AlphaImage.CreateFromResource("AlphaMobileControls3.5Test.Resources.Btn1.png");
btn1.ActiveBackgroundImage = AlphaImage.CreateFromResource("AlphaMobileControls3.5Test.Resources.Btn1_Pushed.png");
btn1.DisabledBackgroundImage = AlphaImage.CreateFromResource("AlphaMobileControls3.5Test.Resources.Btn1_Disabled.png");

程序架构:

问题的解决方法

上面的方法本没有错,调用也完全没有错,可是为什么就是不成功呢?大家看上面架构的项目名称,默认的情况下命名空间和项目名称是一样的,因此上面的调用就出错了.解决方法法,把命名空间中带”.”(点)的都去掉,这样就ok。因为命名空间中带点会让上面的方法在找路径时找不到。

总结

VB.Net中资源的名称为:项目默认命名空间.资源文件名

C#中则是:项目命名空间.资源文件所在文件夹名.资源文件名

用GetManifestResourceStream获取的资源要保证包含在工程中,不包含在工程中即使在同一目录下也没用。包含在工程中以后把该文件的“属性”中的“生成操作”改为“嵌入的资源”。就可以用了

通过GetManifestResourceNames(好像是这个名字)把所有的名字都取出来,然后看看有没有你要的。一般是Assembly名.类名.Manifest.Resource。

// 获取当前类库的程序集 Assembly assembly = Assembly.GetExecutingAssembly(); // 从程序集中读取插件的菜单和工具栏配置信息(xml文件内容)TestPlugin.Properties.Resources Stream stream = assembly.GetManifestResourceStream(“资源文件名称”);

上面的解决方案再wince中一样可以使用。

欢迎访问我的另一个站点: GetManifestResourceStream得到的Stream是null的解决

wince下GetManifestResourceStream得到的Stream是null的解决的更多相关文章

  1. WinCE下读取注册表获得SD路径

    WinCE下读取注册表获得SD路径 [要点]WinCE注册表中[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory\] 下键Folde ...

  2. 在Window Embedded CE(Wince)下使用OpenNETCF进行路由表的开发

    点击打开链接 背景 在开发3G项目的是时候,发现尽管3G网络连接已经建立成功了,但是数据不能发送成功,查明原因,由于路由表的问题,导致数据往ActiveSync连接的对端,也就是PC发送,而不是发送到 ...

  3. Wince下实现ImageButton

    我们在winform中给按钮设置个背景图片超级简单,是不?可是在wince下面就没那么简单了,下面我来介绍一种方式来实现ImageButton. 实现思路是重新写一个usercontrol就ok.具体 ...

  4. WINCE下进程间通信(二)

    WINCE下进程间通信(二) 接着前面的文章<WINCE下进程间通信(一)>,现在介绍进程间通信的另一种方法. 三.管道(消息队列) WINCE并不支持类似于PC机上匿名管道.命名管道的通 ...

  5. WINCE下进程间通信(一)

    WINCE下进程间通信(一) 在WINCE开发中经常需要在不同的进程之间传递.共享数据,总结了一下,WINCE下进程间通信常用的方式有:Windows消息,共享内存,socket通信,管道,全局原子, ...

  6. WinCE下SQLCE数据库开发(VS,VB.net,VC++)

    WinCE下SQLCE数据库开发(VS,VB.net,VC++)   WinCE下SQLCE数据库开发 微软的SQL Server数据库由于其功能强大.方便使用,因此在很多行业都被广泛应用.基于智能设 ...

  7. WinCE下的串口通信开发(VS2005,VB.Net,VC++)

    WinCE下的串口通信开发(VS2005,VB.Net,VC++)   WinCE下的串口通信开发 一.利用Visual Basic 开发很简单,因为有现成的控件可以直接调用 以VS2005为例,首先 ...

  8. WinCE下使用C#的几个小技巧

    1.我们知道,在使用Windows的开发机上用C#启动一个外部程序的方法有很多,但这些方法用在使用WinCE的目标工控机上都无能为力,现在小嫚儿以打开一个IE为例,介绍如何在WinCE下使用C#来打开 ...

  9. WinCE下GPRS自动拨号软件(GPRS AutoDial)

    之前在WinCE下调试USB的3G Modem时,写过一个拨号助手RASManager,基本能用.后来车机卖到俄罗斯去,客户老M提供了一个更好的GPRS自动拨号软件GPRS AutoDial,功能完善 ...

随机推荐

  1. DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)

    首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定, 所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使 ...

  2. ASP.NET页面传值方式

    http://www.cnblogs.com/zhangkai2237/archive/2012/05/06/2486462.html http://www.cnblogs.com/xiaoyusmi ...

  3. 从开发到部署,使用django创建一个简单可用的个人博客

    本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...

  4. 新到的Mac配置Java开发环境

    今天Mac到手,需要配置一些用到的开发环境,在这里做一些纪录. 1. 下载Eclipse,地址:http://www.eclipse.org/downloads/,因为个人需求,所以下载的是Java ...

  5. Request.ServerVariables["Url"]

    Request.ServerVariables["Url"] 返回服务器地址 Request.ServerVariables["Path_Info"] 客户端提 ...

  6. BZOJ 1679: [Usaco2005 Jan]Moo Volume 牛的呼声( )

    一开始直接 O( n² ) 暴力..结果就 A 了... USACO 数据是有多弱 = = 先sort , 然后自己再YY一下就能想出来...具体看code --------------------- ...

  7. django1.6.x(python3.3)使用pymysql连接mysql

    1.安装 pymysql,地址:https://code.google.com/p/pymysql/ 2.安装django 然后执行 django-admin.py startproject mysi ...

  8. thinkphp中Conf的配置

    -----www ----------admin -------------Conf ----------admin.php ----------Home -------------Conf ---- ...

  9. 通过代码...CGRectmake 创建的控件如何自适应屏幕。

    [[UIScreen mainScreen] bounds].size.width [[UIScreen mainScreen] bounds].size.height 得到屏幕的宽高,然后将变量写入 ...

  10. cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap

    背景 在上一篇博客中,我们提到CMGameScene,但是CMGameScene只是个框架,实际担任游戏逻辑的是CMGameMap类,这个博文就来了解下CMGameMap 头文件 class CMGa ...