private void ReadMemberPrimitiveTyped() { SerTrace.Log(this, "ReadObjectPrimitive"); if (memberPrimitiveTyped == null) { memberPrimitiveTyped = new MemberPrimitiveTyped(); } memberPrimitiveTyped.Read(this); memberPrimitiveTyped.Dump(); prs.PRobjectTypeEnum = InternalObjectTypeE.Object; //Get rid of ObjectProgress objectOp = (ObjectProgress)stack.Peek(); prs.Init(); prs.PRvarValue = memberPrimitiveTyped.value; prs.PRkeyDt = Converter.ToComType(memberPrimitiveTyped.primitiveTypeEnum); prs.PRdtType = Converter.ToType(memberPrimitiveTyped.primitiveTypeEnum); prs.PRdtTypeCode = memberPrimitiveTyped.primitiveTypeEnum; if (objectOp == null) { // Top level boxed primitive SerTrace.Log(this, "ReadObjectPrimitive, Non-Nested"); prs.PRparseTypeEnum = InternalParseTypeE.Object; prs.PRname = "System.Variant"; } else { // Nested in an Object SerTrace.Log(this, "ReadObjectPrimitive, Nested"); prs.PRparseTypeEnum = InternalParseTypeE.Member; prs.PRmemberValueEnum = InternalMemberValueE.InlineValue; switch (objectOp.objectTypeEnum) { case InternalObjectTypeE.Object: prs.PRname = objectOp.name; prs.PRmemberTypeEnum = InternalMemberTypeE.Field; break; case InternalObjectTypeE.Array: prs.PRmemberTypeEnum = InternalMemberTypeE.Item; break; default: throw new SerializationException(String.Format(Environment.GetResourceString("Serialization_ObjectTypeEnum"), ((Enum)objectOp.objectTypeEnum).ToString())); } } objectReader.Parse(prs); }
private void ReadMemberPrimitiveTyped() { if (_memberPrimitiveTyped == null) { _memberPrimitiveTyped = new MemberPrimitiveTyped(); } _memberPrimitiveTyped.Read(this); PRs._objectTypeEnum = InternalObjectTypeE.Object; //Get rid of ObjectProgress objectOp = (ObjectProgress)_stack.Peek(); PRs.Init(); PRs._varValue = _memberPrimitiveTyped._value; PRs._keyDt = Converter.ToComType(_memberPrimitiveTyped._primitiveTypeEnum); PRs._dtType = Converter.ToType(_memberPrimitiveTyped._primitiveTypeEnum); PRs._dtTypeCode = _memberPrimitiveTyped._primitiveTypeEnum; if (objectOp == null) { // Top level boxed primitive PRs._parseTypeEnum = InternalParseTypeE.Object; PRs._name = "System.Variant"; } else { // Nested in an Object PRs._parseTypeEnum = InternalParseTypeE.Member; PRs._memberValueEnum = InternalMemberValueE.InlineValue; switch (objectOp._objectTypeEnum) { case InternalObjectTypeE.Object: PRs._name = objectOp._name; PRs._memberTypeEnum = InternalMemberTypeE.Field; break; case InternalObjectTypeE.Array: PRs._memberTypeEnum = InternalMemberTypeE.Item; break; default: throw new SerializationException(SR.Format(SR.Serialization_ObjectTypeEnum, objectOp._objectTypeEnum.ToString())); } } _objectReader.Parse(PRs); }