public override void Read(BinaryParser input)
 {
     this.ObjectId             = input.ReadInt32();
     this.Name                 = input.ReadString();
     this.NumMembers           = input.ReadInt32();
     this.MemberNames          = new string[this.NumMembers];
     this.BinaryTypeEnumArray  = new BinaryTypeEnum[this.NumMembers];
     this.TypeInformationArray = new object[this.NumMembers];
     this.MemberAssemIds       = new int[this.NumMembers];
     for (int i = 0; i < this.NumMembers; i++)
     {
         this.MemberNames[i] = input.ReadString();
     }
     for (int j = 0; j < this.NumMembers; j++)
     {
         this.BinaryTypeEnumArray[j] = (BinaryTypeEnum)input.ReadByte();
     }
     for (int k = 0; k < this.NumMembers; k++)
     {
         if ((this.BinaryTypeEnumArray[k] != BinaryTypeEnum.ObjectUrt) && (this.BinaryTypeEnumArray[k] != BinaryTypeEnum.ObjectUser))
         {
             this.TypeInformationArray[k] = BinaryTypeConverter.ReadTypeInfo(this.BinaryTypeEnumArray[k], input, out this.MemberAssemIds[k]);
         }
         else
         {
             BinaryTypeConverter.ReadTypeInfo(this.BinaryTypeEnumArray[k], input, out this.MemberAssemIds[k]);
         }
     }
     if (this.BinaryHeaderEnum == BinaryHeaderEnum.ObjectWithMapTypedAssemId)
     {
         this.AssemId = input.ReadInt32();
     }
 }
        public static object ReadTypeInfo(BinaryTypeEnum binaryTypeEnum, BinaryParser input, out int assemId)
        {
            object obj2 = null;
            int    num  = 0;

            switch (binaryTypeEnum)
            {
            case BinaryTypeEnum.Primitive:
            case BinaryTypeEnum.PrimitiveArray:
                obj2 = (PrimitiveTypeEnum)input.ReadByte();
                break;

            case BinaryTypeEnum.String:
            case BinaryTypeEnum.Object:
            case BinaryTypeEnum.ObjectArray:
            case BinaryTypeEnum.StringArray:
                break;

            case BinaryTypeEnum.ObjectUrt:
                obj2 = input.ReadString();
                break;

            case BinaryTypeEnum.ObjectUser:
                obj2 = input.ReadString();
                num  = input.ReadInt32();
                break;

            default:
                throw new SerializationException(RemotingResources.SerializationTypeRead.Format(binaryTypeEnum));
            }
            assemId = num;
            return(obj2);
        }
示例#3
0
 public override void Read(BinaryParser input)
 {
     this.ObjectId    = input.ReadInt32();
     this.Name        = input.ReadString();
     this.NumMembers  = input.ReadInt32();
     this.MemberNames = new string[this.NumMembers];
     for (int i = 0; i < this.NumMembers; i++)
     {
         this.MemberNames[i] = input.ReadString();
     }
     if (this.BinaryHeaderEnum == BinaryHeaderEnum.ObjectWithMapAssemId)
     {
         this.AssemId = input.ReadInt32();
     }
 }
 public override void Read(BinaryParser input)
 {
     ObjectId = input.ReadInt32();
     Value    = input.ReadString();
 }
 public void Read(BinaryParser input)
 {
     this._assemId        = input.ReadInt32();
     this._assemblyString = input.ReadString();
 }