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);方法,参数为资源名字。