AsmResolver.Net.Signatures.ArrayTypeSignature.Write C# (CSharp) Method

Write() public method

public Write ( WritingContext context ) : void
context WritingContext
return void
        public override void Write(WritingContext context)
        {
            if (!Validate())
                throw new InvalidOperationException();

            var writer = context.Writer;
            writer.WriteByte((byte)ElementType);
            BaseType.Write(context);
            writer.WriteCompressedUInt32((uint)Dimensions.Count);

            var sizedDimensions = Dimensions.Where(x => x.Size.HasValue).ToArray();
            writer.WriteCompressedUInt32((uint)sizedDimensions.Length);
            foreach (var sizedDimension in sizedDimensions)
                writer.WriteCompressedUInt32((uint)sizedDimension.Size.Value);

            var boundedDimensions = Dimensions.Where(x => x.LowerBound.HasValue).ToArray();
            writer.WriteCompressedUInt32((uint)boundedDimensions.Length);
            foreach (var boundedDimension in boundedDimensions)
                writer.WriteCompressedUInt32((uint)boundedDimension.LowerBound.Value);
        }