webservice中我用Hashtable做缓存,代码如下:
public class Cache
{
internal static Hashtable usersHashtable = new Hashtable();
public static void UpdateCacheUser(IDataObj dataObj)
{
try
{
IDataAccessObj getUser = DAOFactory.getADO(DAOFactory.ADOList.OGetUserById);
UserDO user = (UserDO) getUser.Action(dataObj); if (!usersHashtable.Contains(user.UserId))
{
usersHashtable.Add(user.UserId, user);
}
else
{
//***注意:这里的数据应该先被删除然后在添加新的,但是现在数据一点没有变化,不明白啊!
usersHashtable.Remove(user.UserId);
usersHashtable.Add(user.UserId, user);
}
}
catch (DAOException)
{
}
}
当user对象被修改了,Hashtable中的数据为什么数据没有被remove掉??
public class Cache
{
internal static Hashtable usersHashtable = new Hashtable();
public static void UpdateCacheUser(IDataObj dataObj)
{
try
{
IDataAccessObj getUser = DAOFactory.getADO(DAOFactory.ADOList.OGetUserById);
UserDO user = (UserDO) getUser.Action(dataObj); if (!usersHashtable.Contains(user.UserId))
{
usersHashtable.Add(user.UserId, user);
}
else
{
//***注意:这里的数据应该先被删除然后在添加新的,但是现在数据一点没有变化,不明白啊!
usersHashtable.Remove(user.UserId);
usersHashtable.Add(user.UserId, user);
}
}
catch (DAOException)
{
}
}
当user对象被修改了,Hashtable中的数据为什么数据没有被remove掉??
{
usersHashtable.Add(user.UserId, user);
}
else
{ usersHashtable[user.UserId] = user;
}
{
usersHashtable.Add(user.UserId, user);
}
else
{
usersHashtable[user.UserId] = user;
}