Public classCachecontainer {Private StaticHashtable HT =NewHashtable (); /// <summary> ///objId: Cache id,objobject: Cache object, Expires: Absolute Expiration Time/// </summary> /// <param name= "ObjId" ></param> /// <param name= "Objobject" ></param> /// <param name= "Expires" ></param> Public voidAddObject (stringObjId,ObjectObjobject, DateTime expires) {Containeritem Item=NewContaineritem () {Expires = Expires, Objobject =Objobject}; Ht[objid]=item; } /// <summary> ///default cache 20 minutes/// </summary> /// <param name= "ObjId" ></param> /// <param name= "Objobject" ></param> Public voidAddObject (stringObjId,Objectobjobject) {AddObject (objId, Objobject, DateTime.Now.AddMinutes ( -)); } Public ObjectGetcacheobj (stringobjId) { Objectresult =NULL; if(HT. Contains (objId)) {varitem =(Containeritem) Ht[objid]; if(datetime.now<item. Expires) {result=item. Objobject; } Else{ht. Remove (OBJID); } } returnresult; } /// <summary> ///ObjID exists then deleted, otherwise not processed/// </summary> /// <param name= "ObjId" ></param> Public voidRemoveobject (stringobjId) { if(HT. Contains (ObjId)) {ht. Remove (OBJID); } } } Public classContaineritem { Public ObjectObjobject {Get;Set; } PublicDateTime Expires {Get;Set; } }