zoukankan      html  css  js  c++  java
  • AggregateCacheDependency 用法

    系列目录:

    SqlDependency缓存用法

    Asp.net使用SqlDependency

    SqlCacheDependency使用命令通知使缓存无效

    CacheDependency用法

    AggregateCacheDependency 用法

    SqlCacheDependency使用轮流检测技术(轮询)使缓存无效

    -------------------------------------------------------------------------------------------

        AggregateCacheDependency 类监视依赖项对象的集合,以便在任何依赖项对象更改时,该缓存项都会自动移除。数组中的对象可以是 CacheDependency 对象、SqlCacheDependency 对象、从 CacheDependency 派生的自定义对象或这些对象的任意组合.

        AggregateCacheDependency 类与 CacheDependency 类的不同之处在于前者允许您将不同类型的多个依赖项与单个缓存项关联。例如,如果您创建一个从 SQL Server 数据库表和 XML 文件导入数据的页,则可创建一个 SqlCacheDependency 对象来表示数据库表的依赖项,以及一个 CacheDependency 来表XML 文件的依赖项。可创建 AggregateCacheDependency 类的一个实例,将每个依赖项添加到该类中,而不是为每个依赖项调用 Cache.Insert 方法。然后,可使用单个Insert 调用使该页依赖于AggregateCacheDependency 实例。

        如下例,当表Customer或者XMLData.xml文件的内容变更时。缓存将自动清除。 (此例并不完整,只是用于说明)

    using System.Data;
    using System.Web.Caching;

    namespace SqlDependencyInAspNet
    {
        
    public partial class AggregateCacheDependencyUse : System.Web.UI.Page
        {
            
    protected void Page_Load(object sender, EventArgs e)
            {
                GetData();
            }

            
    private void GetData()
            {
                
    string cacheData = "内容";
                
    if (Cache["data"== null)
                {
                    AggregateCacheDependency ccdy 
    = AggregateDependencyMethod();
                    Cache.Insert(
    "data", cacheData, ccdy);
                    
    if (ccdy.HasChanged)
                    {
                        
    //修改文件后,测试HasChanged仍然为false.原因待查
                        System.Diagnostics.Debug.WriteLine("内容已变更");
                    }
                }
                
    else
                {
                    cacheData 
    = (string)Cache["data"];
                }
                Response.Write(cacheData);
            }

            
    private AggregateCacheDependency AggregateDependencyMethod()
            {
                AggregateCacheDependency dependency 
    = new AggregateCacheDependency();
                dependency.Add(
    new SqlCacheDependency("NHibernateSample""Customer"
    ));
                dependency.Add(
    new CacheDependency(Server.MapPath("~/App_Data/XmlData.xml"
    )));
                
    return dependency;
            }
        }
    }
  • 相关阅读:
    EasyExcel无法用转换器或者注解将java字段写入为excel的数值格式
    IE浏览器报400错误:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    list集合根据字段分组统计转换成map
    博客调网易云歌单JS
    如何一次性add library to classpath
    有趣的统计数据表格显示
    span标签的巧用
    "错误: 找不到或无法加载主类"解决办法
    通过改变注入方式以消除警告
    day17--作业
  • 原文地址:https://www.cnblogs.com/scottckt/p/1966088.html
Copyright © 2011-2022 走看看