Ejemplo n.º 1
0
 /// <summary>
 /// Tries to deserialize an item.
 /// </summary>
 /// <param name="reader">The reader used for binary deserialization</param>
 /// <param name="expectedType">The type that should be deserialzied</param>
 /// <returns>The deserialized object</returns>
 public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
 {
     var token = reader.ReadToken();
     if (token == SerializationTokenType.Null) return null;
     var actualType = this.ReadType(token, reader, expectedType);
     var methods = this.serializers.Get(actualType);
     var deserializer = methods.Deserialize;
     return deserializer(expectedType, reader);
 }
Ejemplo n.º 2
0
        public static void VerifyUsingFallbackSerializer(object ob)
        {
            var writer = new BinaryTokenStreamWriter();
            SerializationManager.FallbackSerializer(ob, writer, ob.GetType());
            var bytes = writer.ToByteArray();

            var reader = new BinaryTokenStreamReader(bytes);
            var serToken = reader.ReadToken();
            Assert.Equal(SerializationTokenType.Fallback, serToken);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Tries to deserialize an item.
        /// </summary>
        /// <param name="expectedType">The type that should be deserialzied</param>
        /// <param name="reader">The reader used for binary deserialization</param>
        /// <returns>The deserialized object</returns>
        public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
        {
            var token = reader.ReadToken();

            if (token == SerializationTokenType.Null)
            {
                return(null);
            }
            var actualType = this.ReadType(token, reader, expectedType);

            return(this.serializers.GetOrAdd(actualType, this.generateSerializer)
                   .Methods.Deserialize(expectedType, reader));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Tries to deserialize an item.
        /// </summary>
        /// <param name="reader">The reader used for binary deserialization</param>
        /// <param name="expectedType">The type that should be deserialzied</param>
        /// <returns>The deserialized object</returns>
        public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
        {
            var token = reader.ReadToken();

            if (token == SerializationTokenType.Null)
            {
                return(null);
            }
            var actualType   = this.ReadType(token, reader, expectedType);
            var methods      = this.serializers.Get(actualType);
            var deserializer = methods.Deserialize;

            return(deserializer(expectedType, reader));
        }
        private static void VerifyUsingFallbackSerializer(object ob)
        {
            var writer = new BinaryTokenStreamWriter();
            SerializationManager.FallbackSerializer(ob, writer, ob.GetType());
            var bytes = writer.ToByteArray();

            byte[] defaultFormatterBytes;
            var formatter = new BinaryFormatter();
            using (var stream = new MemoryStream())
            {
                formatter.Serialize(stream, ob);
                stream.Flush();
                defaultFormatterBytes = stream.ToArray();
            }

            var reader = new BinaryTokenStreamReader(bytes);
            var serToken = reader.ReadToken();
            Assert.Equal(SerializationTokenType.Fallback, serToken);
            var length = reader.ReadInt();
            Assert.Equal(length, defaultFormatterBytes.Length);
            var segment = new ArraySegment<byte>(bytes, reader.CurrentPosition, bytes.Length - reader.CurrentPosition);
            Assert.True(segment.SequenceEqual(defaultFormatterBytes));
        }
Ejemplo n.º 6
0
 internal static object DeserializeGrainCancellationToken(Type expected, BinaryTokenStreamReader stream)
 {
     var cancellationRequested = stream.ReadToken() == SerializationTokenType.True;
     var tokenId = stream.ReadGuid();
     return new GrainCancellationToken(tokenId, cancellationRequested);
 }
Ejemplo n.º 7
0
 public object Deserialize(Type expectedType, BinaryTokenStreamReader reader)
 {
     DeserializeCalled = true;
     reader.ReadToken();
     return (FakeSerialized)Activator.CreateInstance(expectedType);
 }