【问题标题】:Making Cache access methods static使缓存访问方法静态
【发布时间】:2010-11-12 15:47:50
【问题描述】:

在 ASP.NET 中,是否有任何理由不制作一组静态的从缓存对象中添加/删除/获取的函数?

Get() - 只是获取项目,没有理由不是静态的
Add()、Remove() - 我读过在缓存中添加/删除有它自己的内部锁定机制,所以它们可以是静态的,而无需我创建自己的 lock(){} 包装。

【问题讨论】:

    标签: c# asp.net caching static


    【解决方案1】:

    它们已经可以在静态上下文中通过

    HttpRuntime.Cache

    HttpContext.Current.Cache 的方法无论如何都只是转发到此调用,但如果HttpContext.Current.Cache 不在HttpContext.Current 可用的生命周期中,则调用它可能会导致运行时错误。

    回答您的问题:

    是的,您可以使用它来处理它。你会有类似的东西

    public static class StaticCache
    {
    
        public static Add(object obj)
        {        
            try {            
                HttpRuntime.Cache.Add(obj);            
            }
            catch(Exception ex) {
                //log or something            
            }        
        }    
    }
    

    而且用法类似于

    StaticCache.Add("bob");

    【讨论】:

    • 你是说它们可以是静态的,因为 HttpRuntime.Cache 调用是静态的?我的问题是关于将缓存调用放入方法中,以便我可以进行日志记录、错误检查、根据需要更改过期时间等。
    • 哇,不知道这个存在。我一直只是使用HttpContext.Current.Cache 来静态访问它。
    猜你喜欢
    • 2010-09-27
    • 2018-05-30
    • 2015-07-22
    • 2012-06-29
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2012-12-17
    • 2012-04-19
    相关资源
    最近更新 更多