[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 ...
随机推荐
- Hadoop RPC简单实例
1.导入Hadoop-Common-2.6.0.jar导入工程,里面的IPC实现RPC需要的文件. 2.服务器端 (1)服务接口 package com.neu.rpc.server; /** * ...
- android自动化(2)
使用monkeyrunner 自动化删除程序的时候出现如下错误 在任务管理器卸载android adb,Ok..然后再次使用的时候就出现这个问题, Try below steps: Close the ...
- IIS6、IIS7和IIS8各版本的差别
一.写在前面 目前市面上所用的IIS版本估计都是>=6.0的.所以我们主要以下面三个版本进行讲解 服务器版本 IIS默认版本 server2003 6.0 server2008 7.0 serv ...
- JavaScript---网络编程(4)-Date、Math、Global和自定义对象
本节博客进行Date对象.Math对象.Global对象和自定义对象的用法演示. 首先是一个out.js文件内容(输出到网页中的自定义输出方法): function println(parma){ d ...
- logstash快速入门 (这篇文章很不错 ) | 两种方式往logstash传输数据实例:Apache 日志(从文件获取)、Syslog方式
原文地址:http://www.2cto.com/os/201411/352015.html 原文地址:http://logstash.net/docs/1.4.2/tutorials/getting ...
- Lambda表达式与匿名方法
在C#2中,由于有了方法组,匿名方法,类型的协变和抗变,使得运用delegate变得很容易,在注册事件时代码变得简单易读,但是在C# 2中,代码仍然有点臃肿,大块的匿名方法会降低代码的可读性,一般我们 ...
- ubuntu如何跑arm程序
1. 首先确定一间配置好arm linux 交叉编译器,可以使用arm-linux-gcc. 2. 看示例代码hello.c #include<stdio.h> int add(int a ...
- Jquery Mobile左右滑动效果
首先在一个页面里面定义两个< div data-role="page">,这里为了突出重点,就没有写出footer和header.定义的页面如下: <body&g ...
- PTA 06-图3 六度空间 (30分)
"六度空间"理论又称作"六度分隔(Six Degrees of Separation)"理论.这个理论可以通俗地阐述为:"你和任何一个陌生人之间所间隔 ...
- return 和 exit
此篇文不会阐述具体的原理,而是只记录实际应用如何避免一些问题 在<C语言程序设计-现代方法>第9.5章节中有这样一段说明, return语句和exit函数之间的差异是:不管哪个函数调用ex ...