private object ReadObjectCore(ClassDef classDef) { // XXX: This needs a better implementation - maybe, you know, constructing // the requested type? var builder = HessianObject.Builder.New(classDef.Name); objectRefs.Add(builder.Object); foreach (var field in classDef.Fields) { builder.Add(field, ReadValue()); } return(builder.Create()); }
public ClassDef ReadClassDefinition() { var tag = reader.ReadByte(); if (tag != 'C') { throw new UnexpectedTagException(tag, "classdef"); } var name = ReadString(); var fieldCount = ReadInteger(); var fields = new string[fieldCount]; for (var i = 0; i < fields.Length; ++i) { fields[i] = ReadString(); } var classDef = new ClassDef(name, fields); classDefs.Add(classDef); return(classDef); }