Beispiel #1
0
        private void ReadObjectNull(BinaryHeaderEnum binaryHeaderEnum)
        {
            if (_objectNull == null)
            {
                _objectNull = new ObjectNull();
            }
            _objectNull.Read(this, binaryHeaderEnum);

            ObjectProgress?objectOp = (ObjectProgress?)_stack.Peek();

            PRs.Init();
            PRs._parseTypeEnum   = InternalParseTypeE.Member;
            PRs._memberValueEnum = InternalMemberValueE.Null;

            Debug.Assert(objectOp != null);
            if (objectOp._objectTypeEnum == InternalObjectTypeE.Object)
            {
                PRs._memberTypeEnum = InternalMemberTypeE.Field;
                PRs._name           = objectOp._name;
                PRs._dtType         = objectOp._dtType;
            }
            else
            {
                PRs._memberTypeEnum = InternalMemberTypeE.Item;
                PRs._consecutiveNullArrayEntryCount = _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);
        }
 private void InternalWriteItemNull()
 {
     if (_consecutiveNullArrayEntryCount > 0)
     {
         if (_objectNull == null)
         {
             _objectNull = new ObjectNull();
         }
         _objectNull.SetNullCount(_consecutiveNullArrayEntryCount);
         _objectNull.Write(this);
         _consecutiveNullArrayEntryCount = 0;
     }
 }
        internal void WriteNullMember(NameInfo memberNameInfo, NameInfo typeNameInfo)
        {
            InternalWriteItemNull();
            if (_objectNull == null)
            {
                _objectNull = new ObjectNull();
            }

            if (!memberNameInfo._isArrayItem)
            {
                _objectNull.SetNullCount(1);
                _objectNull.Write(this);
                _consecutiveNullArrayEntryCount = 0;
            }
        }