public override void Write(WritingContext context)
{
var writer = context.Writer;
writer.WriteByte((byte)ElementType);
writer.WriteByte((byte)(IsValueType ? ElementType.ValueType : ElementType.Class));
WriteTypeDefOrRef(context.Assembly.NetDirectory.MetadataHeader, context.Writer, GenericType);
writer.WriteCompressedUInt32((uint)GenericArguments.Count);
foreach (var argument in GenericArguments)
argument.Write(context);
}