C# ASP.NET缓存-什么';s直接赋值与Add()或Insert()之间的区别
我试图理解这两个项目之间的区别,以及哪一个(如果有的话)是“正确”的方法 我想向缓存中添加一个对象。例如:C# ASP.NET缓存-什么';s直接赋值与Add()或Insert()之间的区别,c#,asp.net,caching,C#,Asp.net,Caching,我试图理解这两个项目之间的区别,以及哪一个(如果有的话)是“正确”的方法 我想向缓存中添加一个对象。例如: List<String> list = new List<String>(); list.Add("Monday"); list.Add("Tuesday"); list.Add("Wednesday"); list.Add("Thursday"); 或者我可以这样做吗 System.Web.HttpContext.Current.Cache["DaysOfThe
List<String> list = new List<String>();
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
或者我可以这样做吗
System.Web.HttpContext.Current.Cache["DaysOfTheWeek"] = list;
我两个都做过,而且效果很好。我想知道这是否会随着规模的扩大而扩大,或者是否会产生我无法预见的后果
这是在C#,ASP.NET4.5中,没有区别。使用索引器(第二个示例)只需调用
Insert
。您可以在以下列表中看到:
Add
与Insert
的不同之处在于,如果密钥已经存在,Add
不会覆盖缓存中的值-Insert
将替换已经缓存的值。这在以下文件中提到:
如果缓存中已存储具有相同键参数的项,则对此方法的调用将失败。要使用相同的键参数覆盖现有缓存项,请使用Insert方法
哇,谢谢你的参考资料!这真方便!
System.Web.HttpContext.Current.Cache["DaysOfTheWeek"] = list;
public object this[string key] {
get {
return Get(key);
}
set {
Insert(key, value);
}
}