private void ReadMemberPrimitiveTyped() { if (_memberPrimitiveTyped == null) { _memberPrimitiveTyped = new MemberPrimitiveTyped(); } _memberPrimitiveTyped.Read(this); PRs.objectTypeEnum = ObjectTypeEnum.Object; ObjectProgress progress = (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 (progress == null) { PRs.parseTypeEnum = ParseTypeEnum.Object; PRs.name = "System.Variant"; } else { PRs.parseTypeEnum = ParseTypeEnum.Member; PRs.memberValueEnum = MemberValueEnum.InlineValue; ObjectTypeEnum ee = progress._objectTypeEnum; if (ee == ObjectTypeEnum.Object) { PRs.name = progress._name; PRs.memberTypeEnum = MemberTypeEnum.Field; } else { if (ee != ObjectTypeEnum.Array) { throw new SerializationException(RemotingResources.SerializationObjectTypeEnum.Format(progress._objectTypeEnum.ToString())); } PRs.memberTypeEnum = MemberTypeEnum.Item; } } objectReader.Parse(PRs); }
internal void WriteMember(NameInfo memberNameInfo, NameInfo typeNameInfo, object value) { this.InternalWriteItemNull(); PrimitiveTypeEnum primitiveTypeEnum = typeNameInfo._primitiveTypeEnum; if (memberNameInfo._transmitTypeOnMember) { if (this._memberPrimitiveTyped == null) { this._memberPrimitiveTyped = new MemberPrimitiveTyped(); } this._memberPrimitiveTyped.Set(primitiveTypeEnum, value); this._memberPrimitiveTyped.Write(this); } else { if (this._memberPrimitiveUnTyped == null) { this._memberPrimitiveUnTyped = new MemberPrimitiveUnTyped(); } this._memberPrimitiveUnTyped.Set(primitiveTypeEnum, value); this._memberPrimitiveUnTyped.Write(this); } }