CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

资源文件使用问题

楼主pipibug()2004-08-04 16:48:28 在 .NET技术 / C# 提问

创建资源文件  
  ConsoleApplication1.cs  
  -----------------  
  static   void   Main(string[]   args)  
  {  
  ResourceWriter   rw   =   new   ResourceWriter("my.simple.resources");  
  rw.AddResource("1","a   string   from   resources");  
  rw.AddResource("2","string   No.2");  
  rw.Close();  
  }  
  运行后,将资源文件my.simple.resources考到use/bin/debug/下面  
   
  使用资源文件  
  ConsoleApplicatino2.cs  
  -------------------------------------  
  static   void   Main(string[]   args)  
  {  
  ResourceReader   rr   =   new   ResourceReader("my.simple.resources");  
  IDictionaryEnumerator   de   =   rr.GetEnumerator();  
  while(   de.MoveNext())  
  {  
  Console.WriteLine(de.Value);  
  }  
  rr.Close();   //可以正常输出希望得到的字符串  
   
  ResourceManager   rm   =   new   ResourceManager("my.simple",   Assembly.GetExecutingAssembly());  
  Console.WriteLine(rm.GetString("1"));//出现错误  
  Console.WriteLine(rm.GetString("2"));  
  }  
   
  利用resourseReader方法可以读出资源文件里的字符串,可见资源创建是没有问题的,可是为什么用resourceManager的方法读取的时候会出现“未处理的“System.Resources.MissingManifestResourceException”类型的异常出现在   mscorlib.dll   中。  
   
  其他信息:   未能在给定的程序集中找到任何适合于指定的区域性(或非特定区域性)的资源。请确保已将“my.simple.resources”正确嵌入或链接到程序集“ConsoleApplication2”。  
  baseName:   my.simple     locationInfo:   <null>     resource   file   name:   my.simple.resources     assembly:   ConsoleApplication2,   Version=1.0.1677.29919,   Culture=neutral,   PublicKeyToken=null  
  ”的错误呢?  
  问题点数:100、回复次数:9Top

1 楼sunyou(砂子)回复于 2004-08-05 10:12:13 得分 0

ResourceManager   rm   =   new   ResourceManager("my.simple",   Assembly.GetExecutingAssembly());  
  这句意思是访问当前代码正从中运行的程序集(就是你生成的可执行程序)中包含的my.simple.resources资源,但是你并没有把这个资源打包进这个程序集,当然会报告找不到了Top

2 楼pipibug()回复于 2004-08-07 00:28:59 得分 0

查了查msdn,找到个简单的替代方法:ResourceManager   rm   =   ResourceManager.CreateFileBasedResourceManager("my.simple",".",null);  
   
   
   
  不过还请sunyou告诉我怎么样吧资源打包进程序集,   我在解决方案中已经添加了my.simple.resources并且标志为迁入的资源,可是还是不行。难道要用al么?岂不是调试起来很不方便?  
   
  判回复  
  Top

3 楼pipibug()回复于 2004-08-07 00:31:56 得分 0

盼回复,谢谢!Top

4 楼pipibug()回复于 2004-08-07 00:46:42 得分 0

o,   用csc   class1.exe     /res:my.simple.resources   解决了大包的问题  
  al的命令行提示看不懂。。。。  
  Top

5 楼NoReady(亦正亦偏)回复于 2004-08-07 06:57:08 得分 99

你这样做当然是错的,改成如下:  
  ResourceManager   rm   =   new   ResourceManager("class1.my.simple",   Assembly.GetExecutingAssembly());  
   
  即加上程序集的名称,资源文件在程序集中的名称可以用ildasm.exe查看Top

6 楼NoReady(亦正亦偏)回复于 2004-08-07 08:16:46 得分 0

也可以用以下方法:  
  ---------------------  
  //程序集名称对像  
  System.Reflection.AssemblyName   an   =   System.Reflection.Assembly.GetExecutingAssembly().GetName();  
  //程序集名称  
  string   strName   =   an.Name;  
  //资源文件名称  
  string   strRsName   =   strName   +   ".my.simple";  
  System.Resources.ResourceManager   rm   =   new   System.Resources.ResourceManager(strRsName,System.Reflection.Assembly.GetExecutingAssembly());  
  Top

7 楼codeangel(http://www.wSoft.Net)回复于 2004-08-07 08:26:12 得分 1

upTop

8 楼pipibug()回复于 2004-08-08 16:05:44 得分 0

o    
  原来嵌入程序集的资源名称会多个前缀,受到!  
   
  已经验证可行。  
   
  谢谢NoReady的悉心讲解~   和codeangel的关注  
   
  圆满结帖!  
  Top

9 楼czjcsdn(葫芦)回复于 2005-04-19 16:22:08 得分 0

学到Top

相关问题

  • 资源文件的使用?
  • 如何使用资源文件?
  • 关于资源文件的使用
  • 关于资源文件的使用
  • 编辑、使用资源文件
  • 怎样使用资源文件?
  • 请问如何使用资源文件
  • 关于资源文件的使用
  • 如何使用资源文件
  • 在.Net如何使用资源文件

关键词

  • 文件
  • resourcemanager
  • 资源
  • simple
  • getexecutingassembly
  • 程序集
  • resources
  • consoleapplication
  • rm
  • assembly

得分解答快速导航

  • 帖主:pipibug
  • NoReady
  • codeangel

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo