private T ReadObjectHelper <T>(Type type, BinaryReader reader) { if (context.IsReservedType(type)) { return((T)ReadReservedType(type, reader)); } else { var instance = (IPortableObject)Activator.CreateInstance(type); instance.Deserialize(new PofReader(context, SlotSourceFactory.CreateFromBinaryReader(reader))); return((T)instance); } }
private object ReadObjectWithoutTypeDescription(Type type, BinaryReader reader) { if (context.IsReservedType(type)) { return(ReadReservedType(type, reader)); } else { var instance = context.CreateInstance(type); instance.Deserialize(new PofReader(context, slotSourceFactory.CreateFromBinaryReader(reader))); if (instance is SpecialTypes.Base) { return(((SpecialTypes.Base)instance).Unwrap()); } else { return(instance); } } }