我正在做一个ASP.NET web应用程序,我想实现缓存,所以我想知道HttpContext.Current.Cache.InsertHttpContext.Current.Cache.Add之间的区别,以及哪个更好?

推荐答案

两者之间的主要区别在于,如果缓存中已经存在同名的对象,那么对Cache实例的Insert方法调用将替换该对象,而Add方法调用将失败(摘自各自MSDN参考页上方法添加和插入的Remarks段):

Add

如果项具有相同的键参数,则调用此方法将失败

Insert

此方法将覆盖其键匹配的现有缓存项 关键参数.

另一个主要区别是,对于Add方法,一些参数是强制性的,而对于Insert方法,可以使用各种重载方法,一些参数将设置为默认值,如绝对或滑动过期.

可以看到,参数完全相同的Add和Insert方法之间没有区别,只是如果缓存中有同名的对象,Insert不会失败(即不执行任何操作).

Asp.net相关问答推荐

域名 + 子域名在IIS部署

如何向 Array.IndexOf 添加不区分大小写的选项

某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

Azure Service Fabric 是否与 Docker 做同样的事情?

使用 C# 和 ASP.NET 从 Gmail/Hotmail/Yahoo 导入通讯簿

如何在 ASP.NET 中使用时区?

Anti-Forgery Token 适用于不同的基于声明的用户

使用 Elmah 处理 Web 服务中的异常

Web Api 参数始终为空

是否可以在 web.config 中添加响应 http 标头?

如何在 asp net core api 中使用 Created(或 CreatedAtAction / CreatedAtRoute)

如何使用 WebRequest 发布数据并从网页获取响应

Azure Functions 中的 DI

ASP.net 中是否有 after Page_Load 事件

缩小 ASP.Net MVC 应用程序的 HTML 输出

.NET 4.0 中的自定义 MembershipProvider

Asp.Net Mvc - 如何在共享视图中有一个控制器

如何使用restsharp下载文件

将列表转换为 json 格式 - 快速简便的方法

如何从 ASP.NET Identity 获取用户列表?