public object Deserialize(Stream serializationStream)
        {
            try
            {
                var result = new MobileFormatter().Deserialize(serializationStream);

                var sysValue = result as SysState;
                if (sysValue != null)
                {
                    var sysType = Type.GetType(sysValue.TypeName);
                    result = TypeHelper.CoerceValue(sysType, sysValue.Value);
                }

                return result;
            }
            catch //(SerializationException)
            {
                //序列化失败,说明不能反序列化为 IMobile,接着尝试使用 Binary
            }

            var result2 = new BinaryFormatterWrapper().Deserialize(serializationStream);

            return result2;
        }
Exemple #2
0
        public object Deserialize(Stream serializationStream)
        {
            try
            {
                var result = new MobileFormatter().Deserialize(serializationStream);

                var sysValue = result as SysState;
                if (sysValue != null)
                {
                    var sysType = Type.GetType(sysValue.TypeName);
                    result = TypeHelper.CoerceValue(sysType, sysValue.Value);
                }

                return(result);
            }
            catch //(SerializationException)
            {
                //序列化失败,说明不能反序列化为 IMobile,接着尝试使用 Binary
            }

            var result2 = new BinaryFormatterWrapper().Deserialize(serializationStream);

            return(result2);
        }