/// <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); }
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); }
/// <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)); }
/// <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)); }
internal static object DeserializeGrainCancellationToken(Type expected, BinaryTokenStreamReader stream) { var cancellationRequested = stream.ReadToken() == SerializationTokenType.True; var tokenId = stream.ReadGuid(); return new GrainCancellationToken(tokenId, cancellationRequested); }
public object Deserialize(Type expectedType, BinaryTokenStreamReader reader) { DeserializeCalled = true; reader.ReadToken(); return (FakeSerialized)Activator.CreateInstance(expectedType); }