private void ReadObjectNull(BinaryHeaderEnum binaryHeaderEnum) { SerTrace.Log(this, "ReadObjectNull "); if (objectNull == null) { objectNull = new ObjectNull(); } objectNull.Read(this, binaryHeaderEnum); objectNull.Dump(); ObjectProgress objectOp = (ObjectProgress)stack.Peek(); prs.Init(); prs.PRparseTypeEnum = InternalParseTypeE.Member; prs.PRmemberValueEnum = InternalMemberValueE.Null; if (objectOp.objectTypeEnum == InternalObjectTypeE.Object) { prs.PRmemberTypeEnum = InternalMemberTypeE.Field; prs.PRname = objectOp.name; prs.PRdtType = objectOp.dtType; } else { prs.PRmemberTypeEnum = InternalMemberTypeE.Item; prs.PRnullCount = objectNull.nullCount; //only one null position has been incremented by GetNext //The position needs to be reset for the rest of the nulls objectOp.ArrayCountIncrement(objectNull.nullCount - 1); } objectReader.Parse(prs); }
internal void WriteNullMember(NameInfo memberNameInfo, NameInfo typeNameInfo) { typeNameInfo.Dump("WriteNullMember typeNameInfo"); InternalWriteItemNull(); if (objectNull == null) { objectNull = new ObjectNull(); } if (memberNameInfo.NIisArrayItem) { BCLDebug.Trace("BINARY", "-----item-----"); } else { objectNull.SetNullCount(1); BCLDebug.Trace("BINARY", "-----", memberNameInfo.NIname, "-----"); objectNull.Dump(); objectNull.Write(this); nullCount = 0; } }