/// <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)); }
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)); }
protected RedisValue Unbox(TValue value) { return(RedisConvertFactory.ToRedisValue(value)); }