[XML] ResourceManager一个操作Resource的帮助类 (转载)
/// <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的帮助类 (转载)的更多相关文章
- 操作App.config的类(转载)
http://www.cnblogs.com/yaojiji/archive/2007/12/17/1003191.html 操作App.config的类 public class DoConfig ...
- 一个操作Sql2005数据库的类(备份,还原,分离,附加,添加删除用户等操作)(转载)
/* * 更新时间 :2011-09-01 16:06 * 更 新 人 :苏飞 */ using System; using System.Collections.Generic; using Sys ...
- 一个操作EXCEL的C#类ExcelUtils
近期在公司里一直从事服务类的工作,涉及到非常多excel的处理.部分工作内容是每天反复的,仅仅是每天的数据不同而已.我遇到的一个问题是客户每天发送的几种数据有些excel中的字段顺序是一致的,有些是不 ...
- 一个操作oracle的c#类 含分页
有别于以前的一个OracleHelper,这个版各有所长,MARK下. using System; using System.Data; using System.Data.OracleClient; ...
- 写一个操作 .ini文件的类
class IniHelp { private string iniPath; [DllImport("kernel32")] private static extern long ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- XML转换为对象操作类详解
//XML转换为对象操作类 //一,XML与Object转换类 using System.IO; using System.Runtime.Serialization.Formatters.Binar ...
- 一个操作cvs格式的c++类
经常需要使用excel,或者把有的数据用excel打开,程序可以生成cvs格式的文件,这样就可以excel打开并处理了,于是找了一个处理cvs的c++类跟大家分享 代码出处找不到了: 代码如下: St ...
- Spring源码分析——资源访问利器Resource之实现类分析
今天来分析Spring的资源接口Resource的各个实现类.关于它的接口和抽象类,参见上一篇博文——Spring源码分析——资源访问利器Resource之接口和抽象类分析 一.文件系统资源 File ...
随机推荐
- 全面理解Unity加载和内存管理
全面理解Unity加载和内存管理http://game.ceeger.com/forum/read.php?tid=4394&fid=2&uid=6507 1.用简单的“for”循环 ...
- HttpServletRequest、request常用方法、request常见应用、请求转发、RequestDispatcher
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. ...
- Firefox添加插件支持修改Headers
安装以下插件,Firefox就可以修改Headers: 安装成功后,会在左下角出现一个这样的图标,点击这个图标就可以随意修改Headers的参数了.
- 在Apache上部署Django
跟php类似,要想使Apache能够处理python脚本(实际上Apache是不能处理脚本的,只是利用别的扩展模块处理相应脚本),就要给Apache安装相应的扩展模块. Apache起初的python ...
- Win7,8的上帝模式文件夹 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
新建一文件夹,命名为:“GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}”, 创建后双击进入,可以看到计算机所有的配置选项信息.
- 《使用wxWidgets进行跨平台程序开发》chap02——一个简单的应用程序
// Name: minimal.cpp // Purpose: Minimal wxWidgets sample // Author: Julian Smart #include "wx/ ...
- SRM 447(1-250pt, 1-500pt)
DIV1 250 水题...略. DIV1 500 抽象题意:有一个图,指定其中亮点p1和p2,删掉途中其他的一些点,使得p1和p2最短路大于3. 解法:使得p1和p2最短路为2的点一定要删掉.然后, ...
- [html][css]让文字在div中居中的方法[转]
转至:http://dreamweaver.abang.com/od/divcss/a/vertical-align.htm 一.行高(line-height)法 如果要垂直居中的只有一行或几个文字, ...
- linux内核数据结构--进程相关
linux里面,有一个结构体task_struct,也叫“进程描述符”的数据结构,它包含了与进程相关的所有信息,它非常复杂,每一个字段都可能与一个功能相关,所以大部分细节不在我的研究范围之内,在这篇文 ...
- Robot Framework自动化测试环境准备(一)
Robot framework是诺西(NSN)开源的一套自动化测试工具,在通信设备自动化测试中很实用,它基于Python开发,主要模拟NMS网管配置数据到网元NODE,并读取配置看配置是否生效. == ...