/// <exception cref="System.IO.IOException" />
 public DefaultPortableWriter(PortableSerializer serializer, IBufferObjectDataOutput @out, IClassDefinition cd)
 {
     this.serializer = serializer;
     this.@out = @out;
     this.cd = cd;
     writtenFields = new HashSet<string>(); //cd.GetFieldCount()
     begin = @out.Position();
     // room for final offset
     @out.WriteZeroBytes(4);
     @out.WriteInt(cd.GetFieldCount());
     offset = @out.Position();
     // one additional for raw data
     var fieldIndexesLength = (cd.GetFieldCount() + 1)*Bits.IntSizeInBytes;
     @out.WriteZeroBytes(fieldIndexesLength);
 }
 public MorphingPortableReader(PortableSerializer serializer, ObjectDataInput input, IClassDefinition cd)
     : base(serializer, input, cd)
 {
 }