首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > NETCF开发之使用资源文件
【标  题】:NETCF开发之使用资源文件
【关键字】:NETCF
【来  源】:http://blog.csdn.net/yanyouning/archive/2006/08/06/1027047.aspx

NETCF开发之使用资源文件

1.1.1    使用资源文件

在基于.NET Compact Framework的应用程序中,可以使用资源文件将资源嵌入到程序集。使用资源文件的一个主要好处是可以将应用程序或类库DLL文件中的所有特定于语言和区域设置的元素(如标题和用户消息等)从应用程序代码中分离出来。为此,开发人员需要为所支持的每种语言创建单独的资源文件。资源文件实际是一个基于XML数据格式的文本文件,其扩展名为.resx。清单25-3显示了从资源文件中节选的一部分内容。

 

清单25-3:资源文件中的部分内容

<root>

        <data name="MainFormCaption">

                <value>CRM System</value>

        </data>

        <data name="UserWelcome">

                <value>Hi, How are you!</value>

        </data>

        <data name="ErrorMessage1">

                <value>Oh no, Something went wrong!</value>

        </data>

</root>

 

 

 

 

 

 

此时扩展名为.resx的资源文件使用起来仍然不够方便,为此Visual Studio 2005支持使用基于.NET Compact Framework的资源文件生成器(ResGen.exe)将资源文件编译成二进制的映像文件。编译后的资源文件通常具有.resources扩展名。例如,开发人员可以创建一个名为Demo.resx的资源文件,然后在.NET Framework SDKSDK命令提示下执行以下命令,将该资源文件编译成名为Demo.resources的二进制映像文件:

 

resgen Demo.resx Demo.resources

 

将基于文本的.resx文件编译成二进制.resource文件后,为了能够在代码中直接引用该资源文件中的资源,还必须将该映像文件进一步编译为能够直接通过代码引用的.NET程序集。为此Visual Studio 2005支持使用一个名为程序集链接器 (AL.exe) .NET工具来完成映像文件到.NET程序集的编译。例如,要将之前生成的Demo.resources映像文件编译为.NET程序集,可在.NET Framework SDKSDK命令提示下执行以下指令:

 

al /t:library /out:Demo.resources.dll /link:Demo.resources

 

上述命令执行成功后,将在映像文件所在目录下生成一个程序集DLL文件。将资源文件最终编译为.NET程序集后,便可以通过System.Resources命名空间中的ResourceManager类访问资源文件中定义的资源。下面演示使用ResourceManager类访问字符串资源的简单示例代码:

 

Dim asm As Assembly = Assembly.Load("Demo.resources")

Dim rm As New System.Resources.ResourceManager("Demo", asm)

Dim caption As String = rm.GetString("WelcomeCaption")

 

 

在上面这个示例中,使用ResourceManager类实例的GetString访问获取字符串资源。对于资源文件中定义的图像和其它类型的文件资源,还可以使用GetObject方法获取资源数据流,然后将数据流转换成可正常编程访问的实例对象。

除了使用ResourceManager类访问资源之外,还可以通过ResGen.exe生成一个强类型资源类,将可访问资源以类成员属性的形式对外公开。例如,要将之前创建的Demo.resx资源文件生成Visual Basic .NET可访问的强类型资源类,可在调用ResGen.exe命令时将/str参数和"vb"值添加到命令行:

 

resgen Demo.resx Demo.resources /str:vb

 

该命令行指令将生成一个名为Demo.vbVisual Basic类定义的源文件。该源文件包含一个名为Demo的类。在该类中,存在通过ResourceManager实现强类型化属性的代码,如以下代码框所示,在生成的Demo类中定义了一个字符串类型的WelcomeCaption属性:

 

Friend Class Demo

……

'''<summary>

'''  查找类似 You are Welcome! 的本地化字符串。

'''</summary>

Shared ReadOnly Property WelcomeCaption() As String

Get

Return ResourceManager.GetString("WelcomeCaption", resourceCulture)

End Get

End Property

End Class

 

以上简要介绍了如何将资源文件编译为程序集,以及如何使用ResourceManager类和强类型资源类来访问这些资源文件。 
SIMD(SSE、)优化的数据对齐:【上一篇】
杀毒软件需要改变开发模式:【下一篇】
【相关文章】
  • NETCF开发之移动Web网站安全性
  • NETCF开发之用户界面设计
  • NETCF开发之比较两种Timer类
  • NETCF开发之MessageQueue控件
  • NETCF开发之Notification控件
  • NETCF开发之BindingSource控件
  • NETCF开发之绘制图形报表
  • NETCF开发之线程池编程
  • NETCF开发之注册表编程(2)
  • NETCF编程之MessageQueue控件
  • 【随机文章】
  • 理解GNU/Linux
  • AIX COMMAND
  • 审查Java代码的十一种常见错误
  • 我的jise介绍 06.9.1
  • vsftpd+pam+postgresql(freebsd5.5)
  • Win 2003菜鸟使用手记
  • Windows 2000 如何打开自动补齐功能
  • 如何修改Microsoft Visual Studio .NET 2003各种项的默认页.
  • 在SPS中直接查看用HTML格式阅读Office文档
  • 虚拟机下安装Linux(ZZ)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.