资源的使用----实例分析

resourceRelationInfo.xml

该xml的作用:我们在程序运行的时候,需要把需要的资源先加载进来。加载资源的方法,写在LocalMessageManager中,

资源文件的位置如下图:

 

 资源文件的样子:

 ResourceManager类[元数据]

   GetString(string name,CultureInfo culture)

   GetString(string name)

这两个方法的作用是:通过资源文件(.resx)中的名称,如下图中的maintenance_logReceive_receiveStopped,来获得资源文件中对应的值(已停止接收)。

加载资源中的内容:

我们首先写一个类LocalMessageManager,该类有两个重要的函数,和一个重要的属性:

属性

    1.private static Dictionary<String,LocalResourceManager> relations = new Dictionary<String,LocalResourceManager>();

  //该字典的key存储的是resourceRelationInfo.xml中的keyPrefix,value是所对应的LocalResourceManager()

函数

    1.加载指定程序集中的资源,或者说注册指定程序集中的资源

    2.按照资源名称,获得对应资源的值

加载/注册资源的函数:

public void RegResourceRelation(Assembly assembly);

@Param:Assembly assembly,所要注册的资源所在的程序集

读取resourceRelationInfo.xml(图一),分析每个resourceRelationItem节点,获取每个resourceRelationItem节点的assemblyName属性值,和注册资源函数中的参数Assembly assembly的名字(assembly.GetName().Name)进行对比,如果对比成功(相等),则获取这个节点的keyPrefix属性值。并添加到一个列表keyList中。

对节点循环遍历分析完成后。如果keyList属性大于0,我们创建一个LocalResourceManeger的类对象,我们把每一个keyList的值作为字典relations的key,而这个对象作为value(注意:并不是为每一个keyList的值,都创建一个LocalResourceManeger的类对象,一共只有一个)。

ResourceManager类中有一个GetString(string name);方法,参数为资源名字。

原文地址:https://www.cnblogs.com/mrxiaohe/p/5520757.html