Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
                    }
                }
            }
        }