Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }