namespace BLL
{
public class CacheManager
{
//private string cacheKey;
private const string XMLPATH = "~Config/CacheDepencyFile.xml";
private const string PARENTNODE = "Cache";
private const string PATH = "BLL";
private static string xmlMapPath = HttpContext.Current.Server.MapPath(XMLPATH);
private static object obj = new object();
private Hashtable cacheHash;
private XmlDocument document;
/// <summary>
/// 索引(key-value)
/// </summary>
/// <param name="index"></param>
/// <returns></returns>
public virtual string this[string index]
{
get {
if (cacheHash[index] == null)
return string.Empty;
return cacheHash[index] as string;
}
set {
cacheHash[index] = value;
}
}
/// <summary>
/// set key-value
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void Hash(string key,string value)
{
cacheHash[key] = value;
}
/// <summary>
/// protected constuctor
/// </summary>
protected CacheManager()
{
cacheHash = new Hashtable();
document = new XmlDocument();
}
/// <summary>
/// Global Access
/// </summary>
/// <param name="cacheEntity"></param>
/// <returns></returns>
public static CacheManager GetCacheManagerEntity(string cacheEntity)
{
CacheManager cm = LRCache.Get(cacheEntity) as CacheManager;
if (cm == null)
{
lock (obj)
{
if (cm == null)
{
string classEntity = PATH + "." + cacheEntity;
cm = Assembly.Load(PATH).CreateInstance(classEntity) as CacheManager;
cm.LoadData();
CacheDependency depency = new CacheDependency(xmlMapPath);
LRCache.Permanent(cacheEntity, cm, depency);
}
}
}
return cm;
}
/// <summary>
/// provide child class
/// </summary>
protected DataView dvData;
protected virtual void LoadData(){ }
}
}
namespace BLL
{
public class EdusManager : CacheManager
{
protected override DataView LoadData()
{
dvData = LoadEdus() as DataView;
return dvData ;
}
//加载学历
protected DataView LoadEdus()
{
DataView dv = null;
try
{
DataSet ds;
PassPortBLL objBll = new PassPortBLL();
ReturnValue rtn = objBll.GetEduList(out ds);
if (rtn.Result == 1)
dv = ds.Tables[0].DefaultView;
}
catch (Exception ex)
{
LogManager.WriteTextLog("BLL", "EdusManager", "LoadEdus", ex.Message);
}
return dv;
}
}
}
//call
CacheManager cm = CacheManager GetCacheManagerEntity("EdusManager ") as CacheManager ;
DataView dv = cm.dvData;