/// <inheritdoc cref="ISerializationElement.Deserialize" /> public object Deserialize(HessianInputReader reader, HessianSerializationContext context) { reader.BeginObject(); if (reader.IsClassDefinition) { var className = reader.ReadString(); var propertiesCount = reader.ReadInt32(); if (!String.Equals(ClassName, className)) { throw new HessianSerializerException(); } if (ObjectProperties.Count != propertiesCount) { throw new HessianSerializerException(); } for (var index = 0; index < propertiesCount; index++) { var propertyName = reader.ReadString(); var exists = ObjectProperties.Any(property => String.Equals(property.PropertyName, propertyName)); if (!exists) { throw new HessianSerializerException(); } } context.Classes.Add(ObjectType); reader.EndClassDefinition(); } else if (reader.IsInstanceReference) { var index = reader.ReadInstanceReference(); return(context.Instances[index]); } var number = reader.ReadObjectReference(); var instance = Activator.CreateInstance(ObjectType); context.Instances.Add(instance); foreach (var item in ObjectProperties) { var value = item.Deserialize(reader, context); item.Property.SetPropertyValue(instance, value); } reader.EndObject(); return(instance); }
/// <summary> /// /// </summary> /// <param name="stream"></param> /// <returns></returns> public object ReadObject(Stream stream) { if (null == stream) { throw new ArgumentNullException(nameof(stream)); } var serializationScheme = GetSerializationScheme(); using (var reader = new HessianInputReader(stream)) { var context = new HessianSerializationContext(); return(serializationScheme.Deserialize(reader, context)); } }
/// <summary> /// /// </summary> /// <param name="stream"></param> /// <returns></returns> public object ReadObject(Stream stream) { if (null == stream) { throw new ArgumentNullException(nameof(stream)); } var factory = new HessianObjectSerializerFactory(); var scheme = HessianSerializationScheme.CreateFromType(type, factory); using (var reader = new HessianInputReader(stream)) { var context = new HessianSerializationContext(); return(scheme.Deserialize(reader, context)); } }
public object Deserialize(HessianInputReader reader, HessianSerializationContext context) { throw new NotImplementedException(); }
/// <inheritdoc cref="ISerializationElement.Deserialize" /> public object Deserialize(HessianInputReader reader, HessianSerializationContext context) { return(Element.Deserialize(reader, context)); }
/// <inheritdoc /> public object Deserialize(HessianInputReader reader, HessianSerializationContext context) { return(reader.ReadBytes()); }
/// <inheritdoc cref="ISerializationElement.Deserialize" /> public object Deserialize(HessianInputReader reader, HessianSerializationContext context) { return(ObjectSerializer.Deserialize(reader)); }