public CLRSigTypeArray(ElementType type, CLRSignatureParser parser) { BasicType = type; ContainedType = CLRSigType.Parse(parser, false); // ArrayShape (II.23.2.13) Rank = parser.ReadCompressedUInt(); uint numSizes = parser.ReadCompressedUInt(); if (numSizes > Rank) throw new ParseFailedException("Invalid array"); Sizes = new uint[numSizes]; for (uint i = 0; i < numSizes; i++) Sizes[i] = parser.ReadCompressedUInt(); uint numLowBounds = parser.ReadCompressedUInt(); if (numLowBounds > Rank) throw new ParseFailedException("Invalid array"); LowBounds = new int[numLowBounds]; for (uint i = 0; i < numLowBounds; i++) LowBounds[i] = parser.ReadCompressedInt(); }