Cache/BaseCache.cs

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using System.Runtime.Caching;
using System.Text.RegularExpressions;
using DataObject.Dele;
using DataObject.Transform;
using DataObject.Param;

namespace DataObject.Cache
{
    /// <summary>
    /// 缓存基类
    /// </summary>
    [Serializable]
    public class BaseCache<T>
    {
        /// <summary>
        /// 更新操作
        /// </summary>
        protected static UpdateOperat<T> _operat;

        /// <summary>
        /// 缓存构造函数
        /// </summary>
        public BaseCache() { }

        /// <summary>
        /// 缓存构造函数
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public BaseCache(string key, T value) {
            Key = key;
            AddCache(value);
        }

        /// <summary>
        /// 添加缓存
        /// </summary>
        /// <param name="dr">数据对象</param>
        public static void AddCache(DataRow dr) {
            if (!IsCache) return;
            ObjectCache cache = MemoryCache.Default;
            if (cache[Key] == null) {
                //不存在,加入到缓存
                CacheItemPolicy policy = new CacheItemPolicy();
                policy.AbsoluteExpiration = DateTime.Now.AddSeconds(CacheTime);
                //设置添加数据
                DataTable table = dr.Table.Clone();
                table.Rows.Add(dr.ItemArray);
                cache.Add(Key, table, policy);
            }else{
                //存在更新缓存数据
                DataTable table = cache[Key] as DataTable;
                //获取主键
                T t = System.Activator.CreateInstance<T>();
                PropertyInfo key = Parameter.GetPrimaryKey(t);
后面还有 174 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。