【c#】localStorage做缓存

1、localStorage做缓存

1.1 LocalStorage做缓存Cache

internal class Cache
    {
        private LocalStorage localStorage;
        
        public Cache(string domain = "...")
        {
            localStorage = new LocalStorage(domain);
        }

        public object this[string key]
        {
            get
            {
                return localStorage[key];
            }
            set
            {
                if (localStorage.ContainsKey(key))
                {
                    localStorage.Remove(key);
                }
                localStorage[key] = value;
                localStorage.Save();
                localStorage.ReLoad();
            }
        }

        public IList<string> Keys
        {
            get
            {
                IList<string> keys = new List<string>();
                foreach(string key in localStorage.Keys)
                {
                    keys.Add(key);
                }
                return keys;
            }
        }

        public bool Contains(string key)
        {
            if (key == null || key.Length == 0)
                return false;
            return localStorage.ContainsKey(key);
        }

        public object Remove(string key)
        {
            if (key == null || key.Length == 0)
                return false;
            if (localStorage.ContainsKey(key))
            {
                object ret = localStorage[key];
                localStorage.Remove(key);
                return ret;
            }
            return null; 
        }
    }

1.2 LocalStorage

 public class LocalStorage : Hashtable
{
    public LocalStorage(string domain = "app_yz");
    protected LocalStorage(SerializationInfo info, StreamingContext context);

    public override void Add(object key, object value);
    public void LoadData();
    public void ReLoad();
    public void Save();
}

2、缓存使用实例