点击下载 ResourceManager.zip

/// <summary>
/// 类说明:Assistant
/// 编 码 人:苏飞
/// 联系方式:361983679
/// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
/// </summary> using System;
using System.Collections;
using System.Collections.Generic;
using System.IO; namespace DotNet.Utilities
{
/// <summary>
/// ResourceManager
/// </author>
/// </summary>
public class ResourceManager
{
private volatile static ResourceManager instance = null;
private static object locker = new Object();
public static ResourceManager Instance
{
get
{
if (instance == null)
{
lock (locker)
{
if (instance == null)
{
instance = new ResourceManager();
}
}
}
return instance;
}
} private string FolderPath = string.Empty;
public SortedList<String, Resources> LanguageResources = new SortedList<String, Resources>(); public void Serialize(Resources resources, string filePath)
{
ResourcesSerializer.Serialize(filePath, resources);
} public void Init(string filePath)
{
FolderPath = filePath;
DirectoryInfo directoryInfo = new DirectoryInfo(filePath);
LanguageResources.Clear();
if (!directoryInfo.Exists)
{
return;
}
FileInfo[] FileInfo = directoryInfo.GetFiles();
for (int i = ; i < FileInfo.Length; i++)
{
Resources resources = ResourcesSerializer.DeSerialize(FileInfo.FullName);
resources.createIndex();
LanguageResources.Add(resources.language, resources);
}
} public Hashtable GetLanguages()
{
Hashtable hashtable = new Hashtable();
IEnumerator<KeyValuePair<String, Resources>> iEnumerator = LanguageResources.GetEnumerator();
while (iEnumerator.MoveNext())
{
hashtable.Add(iEnumerator.Current.Key, iEnumerator.Current.Value.displayName);
}
return hashtable;
} public Hashtable GetLanguages(string path)
{
Hashtable hashtable = new Hashtable();
DirectoryInfo directoryInfo = new DirectoryInfo(path);
if (!directoryInfo.Exists)
{
return hashtable;
}
FileInfo[] fileInfo = directoryInfo.GetFiles();
for (int i = ; i < fileInfo.Length; i++)
{
[i] Resources resources = ResourcesSerializer.DeSerialize(fileInfo.FullName);
hashtable.Add(resources.language, resources.displayName);
}
return hashtable;
} public Resources GetResources(string filePath)
{
Resources resources = new Resources();
if (File.Exists(filePath))
{
resources = ResourcesSerializer.DeSerialize(filePath);
resources.createIndex();
}
return resources;
} public string Get(string language, string key)
{
if (!LanguageResources.ContainsKey(language))
{
return string.Empty;
}
return LanguageResources[language].Get(key);
}
}
}

[XML] ResourceManager一个操作Resource的帮助类 (转载)的更多相关文章

  1. 操作App.config的类(转载)

    http://www.cnblogs.com/yaojiji/archive/2007/12/17/1003191.html 操作App.config的类 public class DoConfig  ...

  2. 一个操作Sql2005数据库的类(备份,还原,分离,附加,添加删除用户等操作)(转载)

    /* * 更新时间 :2011-09-01 16:06 * 更 新 人 :苏飞 */ using System; using System.Collections.Generic; using Sys ...

  3. 一个操作EXCEL的C#类ExcelUtils

    近期在公司里一直从事服务类的工作,涉及到非常多excel的处理.部分工作内容是每天反复的,仅仅是每天的数据不同而已.我遇到的一个问题是客户每天发送的几种数据有些excel中的字段顺序是一致的,有些是不 ...

  4. 一个操作oracle的c#类 含分页

    有别于以前的一个OracleHelper,这个版各有所长,MARK下. using System; using System.Data; using System.Data.OracleClient; ...

  5. 写一个操作 .ini文件的类

    class IniHelp { private string iniPath; [DllImport("kernel32")] private static extern long ...

  6. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  7. XML转换为对象操作类详解

    //XML转换为对象操作类 //一,XML与Object转换类 using System.IO; using System.Runtime.Serialization.Formatters.Binar ...

  8. 一个操作cvs格式的c++类

    经常需要使用excel,或者把有的数据用excel打开,程序可以生成cvs格式的文件,这样就可以excel打开并处理了,于是找了一个处理cvs的c++类跟大家分享 代码出处找不到了: 代码如下: St ...

  9. Spring源码分析——资源访问利器Resource之实现类分析

    今天来分析Spring的资源接口Resource的各个实现类.关于它的接口和抽象类,参见上一篇博文——Spring源码分析——资源访问利器Resource之接口和抽象类分析 一.文件系统资源 File ...

随机推荐

  1. Hadoop RPC简单实例

    1.导入Hadoop-Common-2.6.0.jar导入工程,里面的IPC实现RPC需要的文件. 2.服务器端  (1)服务接口 package com.neu.rpc.server; /** * ...

  2. android自动化(2)

    使用monkeyrunner 自动化删除程序的时候出现如下错误 在任务管理器卸载android adb,Ok..然后再次使用的时候就出现这个问题, Try below steps: Close the ...

  3. IIS6、IIS7和IIS8各版本的差别

    一.写在前面 目前市面上所用的IIS版本估计都是>=6.0的.所以我们主要以下面三个版本进行讲解 服务器版本 IIS默认版本 server2003 6.0 server2008 7.0 serv ...

  4. JavaScript---网络编程(4)-Date、Math、Global和自定义对象

    本节博客进行Date对象.Math对象.Global对象和自定义对象的用法演示. 首先是一个out.js文件内容(输出到网页中的自定义输出方法): function println(parma){ d ...

  5. logstash快速入门 (这篇文章很不错 ) | 两种方式往logstash传输数据实例:Apache 日志(从文件获取)、Syslog方式

    原文地址:http://www.2cto.com/os/201411/352015.html 原文地址:http://logstash.net/docs/1.4.2/tutorials/getting ...

  6. Lambda表达式与匿名方法

    在C#2中,由于有了方法组,匿名方法,类型的协变和抗变,使得运用delegate变得很容易,在注册事件时代码变得简单易读,但是在C# 2中,代码仍然有点臃肿,大块的匿名方法会降低代码的可读性,一般我们 ...

  7. ubuntu如何跑arm程序

    1. 首先确定一间配置好arm linux 交叉编译器,可以使用arm-linux-gcc. 2. 看示例代码hello.c #include<stdio.h> int add(int a ...

  8. Jquery Mobile左右滑动效果

    首先在一个页面里面定义两个< div data-role="page">,这里为了突出重点,就没有写出footer和header.定义的页面如下: <body&g ...

  9. PTA 06-图3 六度空间 (30分)

    "六度空间"理论又称作"六度分隔(Six Degrees of Separation)"理论.这个理论可以通俗地阐述为:"你和任何一个陌生人之间所间隔 ...

  10. return 和 exit

    此篇文不会阐述具体的原理,而是只记录实际应用如何避免一些问题 在<C语言程序设计-现代方法>第9.5章节中有这样一段说明, return语句和exit函数之间的差异是:不管哪个函数调用ex ...