相关文章导航
  1. Sql Server2005 Transact-SQL 新兵器学习总结之-总结
  2. Flex,Fms3相关文章索引
  3. FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>

Fitch and Mather 7.0中利用了大量的资源文件

资源文件对创建和本地化提供全面的支持

资源可以包含多种形式的数据,包括字符串、图像和持久的对象

通过在资源文件中存储数据,无需重新编译即可更改数据。

为了将持久对象写入资源文件,这些对象必须是可序列化的。

 

Fitch and Mather 7.0在命名空间FMStocks7.Common中创建了一个ResourcesCollection集会类

此类定义了一个构造器和2个索引器

构造器初始化一个私有的ResourceManager实例

索引用来读取资源文件中的数据

 

在类BLO中,我们看到初始化了一个ResourcesCollection

 

 

 

protected static ResourcesCollection Resources= new ResourcesCollection( Assembly.GetExecutingAssembly() );

因为ResourceManagers 的使用成本较大,所以声明一个静态ResourceManagers(除非有特殊需要才声明多个),并在类级别进行声明,进一步节约内存资源。

 

在类Ticker中通过索引器得到资源文件中记录的数值

private static readonly string DailyVolHeading     = Resources[ "Ticker.DailyVolHeading" ];

 

看了半天知道资源文件的使用,但是我们将怎么创建一个资源文件呢?

经过摸索,我总结如下:

资源文件有2种格式

1.resx(基于 XML 的资源格式)文件

2.公共语言运行库二进制 .resources 文件


 

 

 

创建资源文件的方式有3

1.  .NET Framework 工具资源文件生成器 (Resgen.exe)

Resgen.exe 可以进行下列转换:

.txt 文件转换为 .resources 文件或 .resx 文件。

.resources 文件转换为文本文件或 .resx 文件。

.resx 文件转换为文本文件或 .resources 文件。

 

先创建一个文本文件先创建一个文本文件strings.txt

在里面写下

;1

welcome = Welcome to you

 

;2

par = gogogo

注意:有个分号的行是该文件中的注释,它供自己使用的

 

再到命令窗口中输入

d:\resgen.exe d:\strings.txt d:\strings.resX

这样就成功创建了一个xml形式的资源文件strings.resx

 

2.  利用编程的方式来创建资源文件

创建一个控制台程序

具体代码如下:

 

 

 

None.gif using  System;
None.gif
using  System.Reflection;
None.gif
using  System.Resources;
None.gif
None.gif
namespace  ConsoleApplication1
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
class Class1
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        [STAThread]
InBlock.gif        
static void Main(string[] args)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            IResourceWriter writer 
= new ResourceWriter("myR.resources");
InBlock.gif                Bitmap b 
= new Bitmap("us50.gif");
InBlock.gif        
InBlock.gif            writer.AddResource(
"String1""one");
InBlock.gif
InBlock.gif            writer.AddResource(
"String2""two");
InBlock.gif            
InBlock.gif            writer.AddResource(
"pic", b);
InBlock.gif
InBlock.gif            writer.Close();
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

 

这样不仅可以把字符,还可以把图片也放入到资源文件中

运行此控制台会得到资源文件myR.resources

 

1.  通过vs2003来创建资源文件

此方法最简单,我就不多说了

 

创建好资源文件后就可以在自己的项目中引用它们了

特别要注意的是一定要在vs中设定好资源文件的使用属性

生成操作属性要设置为嵌入的资源

见图片:
Resources.gif

我又编写了一个控制台程序来引用我的资源文件

代码如下:

 

None.gif using  System;
None.gif
using  System.Reflection;
None.gif
using  System.Resources;
None.gif
None.gif
namespace  con2
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
class Class1
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        [STAThread]
InBlock.gif        
static void Main(string[] args)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Assembly ass
=Assembly.GetExecutingAssembly();
InBlock.gif            
string name="con2.strings";
InBlock.gif
InBlock.gif            ResourceManager rs
=new ResourceManager(name,ass);
InBlock.gif
InBlock.gif            ResourceManager rsmyR
=new ResourceManager("con2.myR",ass);
InBlock.gif
InBlock.gif            Console.WriteLine(
"strings Resource:" + rs.GetObject("welcome"));
InBlock.gif
InBlock.gif            Console.WriteLine(
"myR Resource:" +rsmyR.GetObject("String2"));
InBlock.gif                        
InBlock.gif            Console.ReadLine();
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

 

打印出:

Welcome to you

Two

 

特别提示:

ResourceManager类的构造函数的第一个参数是资源的根名称

它由名称空间+资源文件名组成(不要扩展名)

ass.GetManifestResourceNames()方法可以得到所有资源的名称

ass.GetName().Name属性可以得到空间名

 

 


希望上面提到的知识对你有所提示

当然欢迎交流和指正

  

 

 

 

收藏与分享

收藏到QQ书签 添加到百度搜藏 添加到百度搜藏 add2myweb.gif添加到雅虎收藏 分享到饭否 收藏到就喜欢网络收藏夹 vivi_coop.gif

RSS订阅我  什么是RSS?

feedsky   http://wap.feedsky.com/aierongrss   E-mail
订阅到雅蛙   ico_sub4.gif   使用RSS邮天下订阅   订阅到有道阅读
订阅到抓虾   鲜果阅读器订阅图标   Add to Google
訂閱 Bloglines   哪吒提醒   Subscribe in NewsGator Online

东莞.net俱乐部

东莞.net俱乐部 欢迎您的加入

转载于:https://www.cnblogs.com/aierong/archive/2005/04/21/142882.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐