/// <summary>
 /// 设置
 /// </summary>
 /// <param name="key"></param>
 /// <param name="value"></param>
 /// <param name="cacheTime"></param>
 public void Set(string key, object value, TimeSpan cacheTime)
 {
     if (value != null)
     {
         //序列化,将object值生成RedisValue
         redisConnection.GetDatabase().StringSet(key, SerializeExtensions.Serialize(value), cacheTime);
     }
 }
        /// <summary>
        /// 获取缓存对象
        /// </summary>
        /// <param name="key">缓存Key</param>
        /// <returns></returns>
        public T Get <T>(string key) where T : class
        {
            var value = redisConnection.GetDatabase().StringGet(key);

            if (value.HasValue)
            {
                //需要用的反序列化,将Redis存储的Byte[],进行反序列化
                return(SerializeExtensions.Deserialize <T>(value));
            }

            return(default);
        /// <summary>
        /// 获取
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public TEntity Get <TEntity>(string key)
        {
            var value = redisConnection.GetDatabase().StringGet(key);

            if (value.HasValue)
            {
                //需要用的反序列化,将Redis存储的Byte[],进行反序列化
                return(SerializeExtensions.Deserialize <TEntity>(value));
            }
            else
            {
                return(default(TEntity));
            }
        }
        private string GetStrFromInstance <T>(T instance)
        {
            var toDictMethod = SerializeExtensions.GetToDictMethod(instance.GetType());

            if (toDictMethod is null)
            {
                Console.WriteLine($"Method ToDict not implemented for {instance.GetType().Name}");
                return(string.Empty);
            }

            var data   = toDictMethod.Invoke(instance, new object[] { instance });
            var jsData = JsonConvert.SerializeObject(data, Formatting.Indented);

            return(jsData.ToString());
        }
 /// <summary>
 /// 添加缓存
 /// </summary>
 /// <param name="key">缓存Key</param>
 /// <param name="value">缓存Value</param>
 /// <param name="expiresIn">缓存时间</param>
 /// <returns></returns>
 public bool Set(string key, object value, int expiresIn = 0)
 {
     if (value != null)
     {
         //序列化,将object值生成RedisValue
         if (expiresIn > 0)
         {
             return(redisConnection.GetDatabase().StringSet(key, SerializeExtensions.Serialize(value), TimeSpan.FromMinutes(expiresIn)));
         }
         else
         {
             return(redisConnection.GetDatabase().StringSet(key, SerializeExtensions.Serialize(value)));
         }
     }
     return(false);
 }
示例#6
0
 public void JsonSerializeTest()
 {
     Assert.AreEqual(SerializeExtensions.JsonSerialize(new { Name = "123" }, true), "{\"name\":\"123\"}");
 }