public void Read(__BinaryParser input)
{
switch (this.binaryHeaderEnum)
{
case BinaryHeaderEnum.ArraySinglePrimitive:
this.objectId = input.ReadInt32();
this.lengthA = new int[1];
this.lengthA[0] = input.ReadInt32();
this.binaryArrayTypeEnum = BinaryArrayTypeEnum.Single;
this.rank = 1;
this.lowerBoundA = new int[this.rank];
this.binaryTypeEnum = BinaryTypeEnum.Primitive;
this.typeInformation = (InternalPrimitiveTypeE)input.ReadByte();
return;
case BinaryHeaderEnum.ArraySingleObject:
this.objectId = input.ReadInt32();
this.lengthA = new int[1];
this.lengthA[0] = input.ReadInt32();
this.binaryArrayTypeEnum = BinaryArrayTypeEnum.Single;
this.rank = 1;
this.lowerBoundA = new int[this.rank];
this.binaryTypeEnum = BinaryTypeEnum.Object;
this.typeInformation = null;
return;
case BinaryHeaderEnum.ArraySingleString:
this.objectId = input.ReadInt32();
this.lengthA = new int[1];
this.lengthA[0] = input.ReadInt32();
this.binaryArrayTypeEnum = BinaryArrayTypeEnum.Single;
this.rank = 1;
this.lowerBoundA = new int[this.rank];
this.binaryTypeEnum = BinaryTypeEnum.String;
this.typeInformation = null;
return;
default:
this.objectId = input.ReadInt32();
this.binaryArrayTypeEnum = (BinaryArrayTypeEnum)input.ReadByte();
this.rank = input.ReadInt32();
this.lengthA = new int[this.rank];
this.lowerBoundA = new int[this.rank];
for (int i = 0; i < this.rank; i++)
{
this.lengthA[i] = input.ReadInt32();
}
if (this.binaryArrayTypeEnum == BinaryArrayTypeEnum.SingleOffset || this.binaryArrayTypeEnum == BinaryArrayTypeEnum.JaggedOffset || this.binaryArrayTypeEnum == BinaryArrayTypeEnum.RectangularOffset)
{
for (int j = 0; j < this.rank; j++)
{
this.lowerBoundA[j] = input.ReadInt32();
}
}
this.binaryTypeEnum = (BinaryTypeEnum)input.ReadByte();
this.typeInformation = BinaryConverter.ReadTypeInfo(this.binaryTypeEnum, input, out this.assemId);
return;
}
}