# .NET 4.0中的缓存功能

.Net 4.0中有3种,System.Runtime.Caching,System.Web.Caching.Cache,
Output.Cache。下面分别对这三者进行介绍:

### 应用程序缓存 System.Runtime.Caching
-----------------------------
.net4内置的高速缓存
```
private void button1_Click(object sender, EventArgs e)
{
ObjectCache objectCache = MemoryCache.Default;

string value1 = objectCache["key1"] as string;

CacheItemPolicy policy = new CacheItemPolicy();

//--------------设置过期时间----------------
policy.AbsoluteExpiration = DateTime.Now.AddHours(1);

objectCache.Set("key1", "11223366", policy);

value1 = objectCache["key1"] as string;

//---------------测试不同类型时 as 是否能自动转换---------
objectCache.Set("key1", 112233, policy);

value1 = objectCache["key1"] as string;

//---------------测试Add方法,在键已经存在的情况下会不会报错------
bool b = objectCache.Add("key1", 112233, policy);

//---------------测试Add方法,键不存在的情况------
b = objectCache.Add("key2", 445566, policy);

int n = (int)objectCache.Get("key2") ;
}
```

### Web应用程序缓存 System.Web.Caching.Cache
-----------------------------
Web程序的缓存,Asp.Net MVC4中使用ViewBag来传递参数。

```
public ActionResult CacheTest()
{
ViewBag.Message = "Web缓存";

Cache cache = HttpRuntime.Cache;

if (cache["Key1"] == null)
{
cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(600), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
}
`
string s = cache["Key1"] as string;
ViewBag.Key1 = s;
ViewBag.Setting = "配置啊";

return View();
}

//-----------------Razor页面使用-------------------
@ViewBag.Key1
```

### 页面输出缓存 Output.Cache
-----------------------------
页面输出缓冲,Output.Cache是MVC的一个注解[Output.Cache]。
在过期时间内,返回给浏览器304,表示页面内容未修改。
```
[OutputCache(Duration =20)]//设置过期时间为20秒
public ActionResult ExampleCache()
{
var timeStr =DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒");
ViewBag.timeStr = timeStr;
return View();
}
```

.NET 4.0中的缓存功能的更多相关文章

  1. yii2.0中数据缓存之增删改查

    public function actionSss(){ /* * 获取到缓存 * 这里是获取的是根目录下 的common/main.php中的缓存类组件 * */ $cache=\Yii::$app ...

  2. 解决EF 4.0 中数据缓存机制

    EF4.0默认开启缓存机制,如果想要禁用缓存机制的话,则须加上一句话:_db.CreateObjectSet().MergeOption = MergeOption.OverwriteChanges; ...

  3. C# 6.0 中的新增功能(.NET Framework 4.6 与 Visual Studio 2015 )

    C#6.0 在 2015 年7月随着.NET Framework 4.6 一同发布,后期发布了.NET Framework 4.6.1,4.6.2. 一.自动属性初始化(Auto-property i ...

  4. 再编写代码中报错:CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。

    解决方法:项目右键属性 ---> 生成 ---> 找到最下面的高级按钮,点击高级按钮 ---> 常规 ---> 语言版本 ---> 选择 C#最新次要版本,或者比当前版本 ...

  5. 错误 CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。

    解决方法:项目右键属性 —> 生成 —> 找到最下面的高级按钮,点击高级按钮 —> 常规 —> 语言版本 —> 选择 C#最新次要版本,或者比当前版本更高的版本即可,点击 ...

  6. 全面认识一下.NET 4.0的缓存功能 (转)

    转自:http://www.cnblogs.com/hjf1223/archive/2010/07/16/net_4_caching.html 很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定 ...

  7. (转)全面认识一下.NET 4的缓存功能

    很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定是不会被忽略的一个重要亮点.在很多文档中都会介绍到在.NET 4.0中,缓存功能的增强主要是在扩展性方面做了改进,改变了原来只能利用内存进行缓存 ...

  8. Django 3.0中不推荐使用的及已经删除的功能

    3.0中不推荐使用的功能 django.utils.encoding.force_text()和smart_text()的别名被弃用.如果您的代码支持Python 2,smart_str()并且 fo ...

  9. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)

    (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...

随机推荐

  1. OCP试题解析之053-17 CONFIGURE CONTROLFILE AUTOBACKUP ON

    17.You configure AUTOBACKUP to ON in an RMAN session. When will RMAN back up the control file? (Choo ...

  2. [转]Sql server 大数据量分页存储过程效率测试附代码

    本文转自:http://www.cnblogs.com/lli0077/archive/2008/09/03/1282862.html 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下 ...

  3. C/C++中的格式化字符

    格式化输出函数包括printf, fprintf, sprintf等等. 格式化输入函数包括scanf, fscanf, sscanf等等. 这类函数在输入输出的时候都有一个参数为格式化字符串(for ...

  4. LINUX之内网渗透提权

    在渗透测试过程中,经常遇到如下情形,内部网络主机通过路由器或者安全设备做了访问控制,无法通过互联网直接访问本地开放的服务,Windows方 面,国内通常选择Lcx.exe来进行端口转发,在应用方面大多 ...

  5. sparkStreaming读取kafka的两种方式

    概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka.flume.socket流等等.除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论.本篇 ...

  6. linux 设置 亮度

    调整系统运行的配置文件位于 /sys/class/ 文件夹下. 调整亮度在 /sys/class/backlight/XXXX/brightness XXXX 是因为使用的驱动不一样,名称就会不一样, ...

  7. Windows注册表中修改CMD默认路径

    一.开启注册表“win键+R键”并输入regedit 二.在注册表项 HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor 新建一个项,并 ...

  8. Textarea自动适用高度且无滚动条解决方案

    今日的系统需要动态显示一项数据库里面的内容,该内容包含换行等格式字符,要求如实的反应在页面上. 最初解决办法是使用textarea控件,代码如下: <textarea style="b ...

  9. java.util.HashMap 解析

    HashMap 是我们经常使用的一种数据结构.工作中会经常用到,面试也会总提到这个数据结构,找工作的时候,”HashTable 和HashMap的区别“被问到过没有? 本文会从原理,JDK源码,项目使 ...

  10. hdu1700 Points on Cycle (数学)

    Problem Description There is a cycle with its center on the origin. Now give you a point on the cycl ...