public void UpdateSerializedObjectValue <T, F>(T instance, Expression <Func <T, F> > expression, F value) { if (value == null) { throw new ArgumentException("Cannot be null.", "value"); } var prefix = Model.GetKey(instance); var memberKey = Model.GetKeyForMemberExpression(expression.Body as MemberExpression); var key = Model.CreateKey(prefix, memberKey); Set(key, RedisDataFormatUtil.FormatForStorage(value)); }
public void SerializeObject(Object instance, String keyPrefix = null, TimeSpan?slidingExpiration = null) { var type = instance.GetType(); var instanceKey = Model.GetKey(instance); var fullPrefix = instanceKey; if (!String.IsNullOrEmpty(keyPrefix)) { fullPrefix = Model.CreateKey(keyPrefix, instanceKey); } var members = new Dictionary <Member, Object>(); ReflectionUtil.MapToDictionary(instance, members); foreach (var member in members) { var fullKey = Model.CreateKey(fullPrefix, member.Key.FullyQualifiedName); var value = member.Value; if (member.Key.IsBinarySerialized) { BinarySerializeObject(fullKey, value); ExpireByTimespan(fullKey, slidingExpiration); } else { if (value != null) { Set(fullKey, RedisDataFormatUtil.FormatForStorage(value)); ExpireByTimespan(fullKey, slidingExpiration); } } } }