/// <summary>
        /// 获取 实体对象数值属性 <see cref="HashEntry"/> 集合
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static IEnumerable <HashEntry> ToHashEntries <T> (this T entity)
        {
            var properties = GetProperties <T> ();

            foreach (var property in properties)
            {
                var value = property.GetValue(entity);
                if (RedisConvertFactory.TryParse(value, out var redisValue))
                {
                    yield return(new HashEntry(property.Name, redisValue));
                }
            }
        }
        private static void SetValue <T> (this T instance, PropertyInfo prop, RedisValue value)
        {
            if (prop == null)
            {
                return;
            }
            if (!value.HasValue)
            {
                return;
            }
            if (prop.PropertyType == typeof(TimeSpan))
            {
                var timeSpan = TimeSpan.FromTicks((long)value);
                prop.SetValue(instance, timeSpan);
                return;
            }
            var propValue = RedisConvertFactory.Convert(value, prop.PropertyType, CultureInfo.InvariantCulture);

            prop.SetValue(instance, propValue);
        }
 protected RedisValue Unbox <T> (T value) where T : IConvertible
 {
     return(RedisConvertFactory.ToRedisValue <T> (value));
 }
示例#4
0
 public void TestToRedisValue()
 {
     Assert.Equal(RedisValue.Null, RedisConvertFactory.ToRedisValue <string> (null));
     Assert.Equal(RedisValue.Null, RedisValue.Unbox(null));
     Assert.Equal(5, RedisConvertFactory.ToRedisValue <DayOfWeek> (DayOfWeek.Friday));
 }
 internal static TValue ConvertTo <TValue> (this RedisValue value) where TValue : IConvertible
 {
     return((TValue)RedisConvertFactory.Convert(value, typeof(TValue), CultureInfo.InvariantCulture));
 }
示例#6
0
 protected RedisValue Unbox(TValue value)
 {
     return(RedisConvertFactory.ToRedisValue(value));
 }