private static T Read(Reader reader, string key) { Stream stream = reader.Stream; T obj = Factory <T> .New(); reader.AddReference(obj); MembersReader.ReadAllMembers(reader, key, ref obj); stream.ReadByte(); return(obj); }
private static T Read(Reader reader, string key) { Stream stream = reader.Stream; T obj = Factory <T> .New(); reader.AddReference(null); int refIndex = reader.LastReferenceIndex; MembersReader.ReadAllMembers(reader, key, ref obj); reader.SetReference(refIndex, obj); stream.ReadByte(); return(obj); }
private static T ReadMapAsObject(Reader reader) { Stream stream = reader.Stream; T obj = Factory <T> .New(); reader.AddReference(obj); int count = ValueReader.ReadCount(stream); var strDeserializer = Deserializer <string> .Instance; for (int i = 0; i < count; ++i) { var name = strDeserializer.Deserialize(reader); MembersReader.ReadMember(reader, name, ref obj); } stream.ReadByte(); return(obj); }