예제 #1
0
        public void Deserialize_List_Test()
        {
            var json      = "{\"Payload\":\"[\\\"Stranger Things\\\",\\\"The OA\\\",\\\"Lost in Space\\\"]\",\"Type\":\"System.Collections.Generic.List`1[[System.String]]\"}";
            var cacheData = AbpCacheData.Deserialize(json);

            cacheData.ShouldNotBeNull();
        }
예제 #2
0
        public void Deserialize_Class_Test()
        {
            var json = "{\"Payload\": \"{\\\"Field1\\\": 42,\\\"Field2\\\":\\\"Stranger Things\\\"}\",\"Type\":\"Abp.Tests.Runtime.Caching.AbpCacheData_Tests+MyTestClass, Abp.Tests\"}";

            var cacheData = AbpCacheData.Deserialize(json);

            cacheData.ShouldNotBeNull();
        }
        /// <summary>
        ///     Creates an instance of the object from its serialized string representation.
        /// </summary>
        /// <param name="objbyte">String representation of the object from the Redis server.</param>
        /// <returns>Returns a newly constructed object.</returns>
        /// <seealso cref="IRedisCacheSerializer.Serialize" />
        public virtual object Deserialize(string objbyte)
        {
            var serializerSettings = new JsonSerializerSettings();

            serializerSettings.Converters.Insert(0, new AbpDateTimeConverter());

            var cacheData = AbpCacheData.Deserialize(objbyte);

            return(cacheData.Payload.FromJsonString(
                       Type.GetType(cacheData.Type, true, true),
                       serializerSettings));
        }
예제 #4
0
        public void Serialize_Class_Test()
        {
            var source = new MyTestClass
            {
                Field1 = 42,
                Field2 = "Stranger Things"
            };

            var result = AbpCacheData.Serialize(source);

            result.Type.ShouldBe("Abp.Tests.Runtime.Caching.AbpCacheData_Tests+MyTestClass, Abp.Tests, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
            result.Payload.ShouldBe("{\"Field1\":42,\"Field2\":\"Stranger Things\"}");
        }
예제 #5
0
        public void Serialize_List_Test()
        {
            List <string> source = new List <string>
            {
                "Stranger Things",
                "The OA",
                "Lost in Space"
            };

            var result = AbpCacheData.Serialize(source);

            result.Type.ShouldStartWith("System.Collections.Generic.List`1[[System.String,");
            result.Payload.ShouldBe("[\"Stranger Things\",\"The OA\",\"Lost in Space\"]");
        }
 /// <summary>
 ///     Produce a string representation of the supplied object.
 /// </summary>
 /// <param name="value">Instance to serialize.</param>
 /// <param name="type">Type of the object.</param>
 /// <returns>Returns a string representing the object instance that can be placed into the Redis cache.</returns>
 /// <seealso cref="IRedisCacheSerializer.Deserialize" />
 public virtual string Serialize(object value, Type type)
 {
     return(JsonConvert.SerializeObject(AbpCacheData.Serialize(value)));
 }