Reads a serialized object.
Inheritance: IObjectReader
示例#1
0
 public override void Skip(ObjectReader reader)
 {
     MemberValueType type = reader.PeekValueType();
     if (type == MemberValueType.Object)
     {
         ReadStartObject(reader);
     }
     else if (type == MemberValueType.Array)
     {
         ReadStartArray(reader);
     }
     else if (type == MemberValueType.Primitive)
     {
         ReadPrimitiveValue(reader);
         reader.SkipPrimitiveValue();
     }
     else
     {
         throw new NotSupportedException("Unsupported value type.");
     }
 }
示例#2
0
            public override bool ReadStartArray(ObjectReader reader)
            {
                reader.SetState(EndArrayValueState.State);

                if (reader.ReadStartArrayToken())
                {
                    // Start of a new array
                    reader.PushState(StartArrayState.State);
                    return true;
                }
                else
                {
                    // No array (null)
                    return false;
                }
            }
示例#3
0
 public override void ReadPrimitiveValue(ObjectReader reader)
 {
     reader.SetState(EndArrayValueState.State);
 }
示例#4
0
 public override void Skip(ObjectReader reader)
 {
     MoveToNextObjectMember(reader);
 }
示例#5
0
            public override bool ReadStartObject(ObjectReader reader)
            {
                reader.SetState(EndArrayValueState.State);

                return InitialState.State.ReadStartObject(reader);
            }
示例#6
0
 public override void ReadEndArray(ObjectReader reader)
 {
     reader.ReadEndArrayToken();
     reader.PopState();
 }
示例#7
0
 public virtual bool ReadStartArray(
     ObjectReader reader)
 {
     throw new InvalidOperationException();
 }
示例#8
0
 public override void Skip(ObjectReader reader)
 {
     ReadStartObject(reader);
 }
示例#9
0
 public override void ReadPrimitiveValue(ObjectReader reader)
 {
     reader.SetState(MemberValueState.State);
 }
示例#10
0
 public abstract void Skip(
     ObjectReader reader);
示例#11
0
 public override bool ReadStartObject(
     ObjectReader reader)
 {
     if (reader.ReadStartObjectToken())
     {
         // Start of a new object
         reader.PushState(StartObjectState.State);
         return true;
     }
     else
     {
         // No object (null)
         return false;
     }
 }
示例#12
0
 public virtual void ReadPrimitiveValue(
     ObjectReader reader)
 {
     throw new InvalidOperationException();
 }
示例#13
0
 public virtual void ReadEndArray(
     ObjectReader reader)
 {
     throw new InvalidOperationException();
 }
示例#14
0
 public virtual bool MoveToNextArrayValue(
     ObjectReader reader)
 {
     throw new InvalidOperationException();
 }
示例#15
0
 public override bool MoveToNextArrayValue(ObjectReader reader)
 {
     // Check for the end of the array
     if (reader.ReadToNextArrayValue())
     {
         reader.SetState(StartArrayValueState.State);
         return true;
     }
     else
     {
         reader.SetState(EndArrayState.State);
         return false;
     }
 }
示例#16
0
            public override bool MoveToNextObjectMember(ObjectReader reader)
            {
                // Skip the current value
                reader.SkipValue();

                // Move to the next member
                return MemberValueState.State.MoveToNextObjectMember(reader);
            }
示例#17
0
 public override void Skip(ObjectReader reader)
 {
     MoveToNextArrayValue(reader);
 }
示例#18
0
 public override bool MoveToNextObjectMember(ObjectReader reader)
 {
     // Try to read the next member key
     if (reader.ReadNextObjectMemberKey())
     {
         // Next member key
         reader.SetState(MemberKeyState.State);
         return true;
     }
     else
     {
         // No more members (end of object)
         reader.SetState(EndObjectState.State);
         return false;
     }
 }
示例#19
0
 public override void Skip(ObjectReader reader)
 {
     ReadEndArray(reader);
 }
示例#20
0
 public virtual bool MoveToNextObjectMember(
     ObjectReader reader)
 {
     throw new InvalidOperationException();
 }